Salve a tutti.
Scusate la mia ignoranza, pero ho la necessitá di inserire dati in una tabella dopo un inserimento in un'altra tabella.
Mi spiego meglio:
Sto cercado di crere un sistema di accesso a un sito web con regole specifiche per ogni usario,
perció ho 3 tabelle, una tabella module, una role e una role_rights.
Nella tabella module ho i dati dei menu e delle pagine, nella role i tipi di utente e nella role_rights quello che possono fare gli utenti.
Necessito che quando inserisco un record nuovo in module faccia una select della role e inserisca in role_rights:
role_rights.rr_rolecode = role.role_rolecode (select role_rolecode from role)
role_rights.rr_modulecode = module.mod_modulecode (appena inserito)
questo dovrebbe inserire un record per ogni record restituito dalla select nella tabella role.
esempio:
admin - home
superadmin - home
utente semplice - home
questo è il codice que uso per inserire il module:
codice:
avete una idea di come posso fare?
Grazie a tutti per leggere questo post.
Scusate la mia ignoranza, pero ho la necessitá di inserire dati in una tabella dopo un inserimento in un'altra tabella.
Mi spiego meglio:
Sto cercado di crere un sistema di accesso a un sito web con regole specifiche per ogni usario,
perció ho 3 tabelle, una tabella module, una role e una role_rights.
Nella tabella module ho i dati dei menu e delle pagine, nella role i tipi di utente e nella role_rights quello che possono fare gli utenti.
Codice:
CREATE TABLE `module` (
`mod_modulegroupcode` varchar(25) NOT NULL,
`mod_modulegroupname` varchar(50) NOT NULL,
`mod_modulecode` varchar(25) NOT NULL,
`mod_modulename` varchar(50) NOT NULL,
`mod_modulegrouporder` int(3) NOT NULL,
`mod_moduleorder` int(3) NOT NULL,
`mod_modulepagename` varchar(255) NOT NULL,
`mod_type` enum('add','edit','normal') NOT NULL DEFAULT 'normal'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `module` (`mod_modulegroupcode`, `mod_modulegroupname`, `mod_modulecode`, `mod_modulename`, `mod_modulegrouporder`, `mod_moduleorder`, `mod_modulepagename`, `mod_type`) VALUES
('SITE', 'Site', 'HOME', 'Home', 1, 0, home.php', 'normal');
CREATE TABLE `role` (
`role_rolecode` varchar(50) NOT NULL,
`role_rolename` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `role` (`role_rolecode`, `role_rolename`) VALUES
('ADMIN', 'Administrator'),
('UTENTE SEMPLICE', 'Utente Semplice'),
('SUPERADMIN', 'Super Admin');
[CODE]CREATE TABLE `role_rights` (
`rr_rolecode` varchar(50) NOT NULL,
`rr_modulecode` varchar(25) NOT NULL,
`rr_create` enum('yes','no') NOT NULL DEFAULT 'no',
`rr_edit` enum('yes','no') NOT NULL DEFAULT 'no',
`rr_delete` enum('yes','no') NOT NULL DEFAULT 'no',
`rr_view` enum('yes','no') NOT NULL DEFAULT 'no',
`rr_order` enum('yes','no') NOT NULL DEFAULT 'no',
`rr_show` enum('yes','no') NOT NULL DEFAULT 'no'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `role_rights` (`rr_rolecode`, `rr_modulecode`, `rr_create`, `rr_edit`, `rr_delete`, `rr_view`, `rr_order`, `rr_show`) VALUES
('UTENTE SEMPLICE', 'HOME', 'no', 'no', 'no', 'yes', 'no', 'no'),
Necessito che quando inserisco un record nuovo in module faccia una select della role e inserisca in role_rights:
role_rights.rr_rolecode = role.role_rolecode (select role_rolecode from role)
role_rights.rr_modulecode = module.mod_modulecode (appena inserito)
questo dovrebbe inserire un record per ogni record restituito dalla select nella tabella role.
esempio:
admin - home
superadmin - home
utente semplice - home
questo è il codice que uso per inserire il module:
codice:
PHP:
try {
$sql = "INSERT INTO " . TBL_MODULE . " (`mod_modulecode`, `mod_modulegroupcode`, `mod_modulegroupname`, `mod_modulename`, `mod_modulegrouporder`, `mod_moduleorder`, `mod_modulepagename`, `mod_type`) VALUES :modulecode, :modulegroupcode, :modulegroupname, :modulename, :modulegrouporder, :moduleorder, :modulepagename, :type)";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":modulecode", $modulecode);
$stmt->bindValue(":modulegroupcode", $modulegroupcode);
$stmt->bindValue(":modulegroupname", $modulegroupname);
$stmt->bindValue(":modulename", $modulename);
$stmt->bindValue(":modulegrouporder", $modulegrouporder);
$stmt->bindValue(":moduleorder", $moduleorder);
$stmt->bindValue(":modulepagename", $modulepagename);
$stmt->bindValue(":type", $type);
avete una idea di come posso fare?
Grazie a tutti per leggere questo post.
Ultima modifica di un moderatore: