voila mon pb, l'idée est de pouvoir modifier l'inscription d'individus à des groupes, sachant que :
- Un individu peut appartenir à plusieurs groupes
- le nombre de groupes peut évoluer.
J'ai donc créé 3 tables :
contact (id_contact, nom, prenom...) qui regroupe les individus
grp (id_grp,nom_grp) qui regroupes les différents groupes
grp_contact (id_grp_contact, id_contact, id_grp) qui stocke l'affiliation des individus aux différents groupes.
j'arrive à insérer des contacts et les affilier à des groupes. Par contre je bute sur la modification des affiliations.
j'ai creer le formulaire permettant d'afficher l'appartenance de chaque individu aux groupes auxquels il appartient à l'aide de checkbox:
<?php
echo "<form action=\"modif_inscr_grp2.php\">\n";
echo "<input type=hidden name=\"id_contact\" value=$id_contact>\n";
//récuperation de tous les groupes
$sql = "SELECT id_grp, nom_grp FROM grp ORDER BY nom_grp ASC";
$req = mysql_query($sql) or die(mysql_error().$sql);
while($data = mysql_fetch_assoc($req)) {
//On va voir si ce groupe est selectionné
$sql = "SELECT * FROM grp_contact WHERE id_contact = $id_contact AND id_grp = ".$data['id_grp'];
$req2 = mysql_query($sql) or die(mysql_error().$sql);
$checked = mysql_num_rows($req2) > 0;
//On affiche la checkbox
echo '<div>';
echo '<input type="checkbox"
name="grpsel[]" id="grpsel_'.$data['id_grp'].'"
value="'.$data['id_grp'].'"
'.($checked?'checked="checked"':'').' />';
echo '<label for="grpsel_'.$data['id_grp'].'">'.$data['nom_grp'].'</label>';
echo '</div>';
}
echo "<input type=submit value=\"Modifier\">";
echo "</form>";
?>
la page "modif_inscr_grp2.php" devant faire la mise à jour se présente ainsi :<?php
require_once(...);
mysql_select_db($..., $...);
$id_contact = $_GET["id_contact"];
$id_grp = $_GET["grpsel"];
if($id_grp) {
for ($i=0; $i<count($id_grp); $i++) {
$result=mysql_query("UPDATE grp_contact SET id_grp='$id_grp[$i]' WHERE id_contact='$id_contact'");
if (!$result) {
echo "La mise à jour a échoué. Essayez plus tard<br>";
} else {
header('Location: contact_details.php?id_contact='.$id_contact.'');
}
}
}
mysql_close();
?>
mon pb c'est qu'un simple update dans la table grp_contact ne me permet pas de supprimer et/ou d'ajouter des groupes pour un individu dans cette même table.J'espère que je suis assez clair.
Quelqu'un aurait des suggestions ?
Merci d'avance.