en voyant ça je me dis qu'on est mal parti, en faite je viens de comprendre que tu veut récupèrer les id ... au lieu de mettre les droits, du style 'droit1;droit2,droit3', comme valeur des cases a cocher il aurrait peut etre été plus judicieux de passer directement les id... on va continuer sur la lancée.Code : Tout sélectionner
// Récupération de/des ID droit foreach($options as $droit) { $sql2 = "SELECT * FROM gesten_utilisateur_droit WHERE DROIT_GROUPE = '$droit'"; $req2 = mysql_query($sql2) or die('Impossible de visualiser les droits'); $data = mysql_fetch_array($req2); $id_test = $data['ID_DROIT']; }
Alors tu ne récupère que la dernière valeur normal tu écrase toujours l'ancienne valeur en faissant cça:
$id_test = $data['ID_DROIT'];
il faut crée un tableau contenant les id des différents droit.
$tab_id=array();
foreach($options as $droit)
{
$sql2 = "SELECT * FROM gesten_utilisateur_droit WHERE DROIT_GROUPE = '$droit'";
$req2 = mysql_query($sql2) or die('Impossible de visualiser les droits');
$data = mysql_fetch_array($req2);
$tab_id[] = $data['ID_DROIT'];
}
ainsi tu as dans $tab_id les id des droits séléctionné.Ensuite on va essayer une requete dynamique:
//initialisation de la requete à insertion multiple
$sql3="INSERT INTO gesten_utilisateur_groupe_droit (ID_GROUPE, ID_DROIT) VALUES ";
//listage des droits a inserer avec le meme "id_groupe"
foreach($tab_id as $id)
{
$sql3.=" (".$id_groupe.",".$id.") ,";
}
$sql3 = substr($sql3,0,strlen($sql3)-1);// a pour effet de supprimer la dernière virgule générée dans la boucle
// si tout se passe bien tu devrai avoir une requete du style
// INSERT INTO gesten_utilisateur_groupe_droit (ID_GROUPE, ID_DROIT) VALUES (id_groupe,id_1) , (id_groupe,id_2)
mysql_query($sql3) or die('Impossible d\'inserer le couple id_groupr/id_droit');
parcontre la je suppose que tu connais " $id_groupe " et que pour chaque insertion ne change pas.