Bonjour à tous,

D'un côté, une table "fruits" contenant id1 => pomme, id2 => banane, id3 => mangue...etc...

De l'autre, une table users avec un champ fruits renseigné par un form contenant les id choisis séparés par un espace: 1 3 6 etc...

En mode modif, je souhaite afficher les cases à cocher de tous les fruits (ça, je sais faire), mais que celles qui correspondent au choix de l'user soient checked ...

A force de tâtonnements, voici ce que j'ai fait:
1- je récupère les données du champ fruits de l'user sous forme de tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$fruits = explode(" ", $row["fruits"]);
2- Affichage des checkbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
$sql = mysql_query("SELECT id, nom FROM fruits order by id");//lecture tble fruits
while($res = mysql_fetch_array($sql))
{
for($i=0; $i <count($fruits);$i++)
 {
$sel[$i] = ( $fruits[$i] == "$res[id]" ) ? ' checked="checked"' : ' ';
echo "".$res["nom"]."\n\n<input type=\"checkbox\" name=\"fruits[]\" value=\"".$res["id"]."\" ".$sel[$i].">\n | ";
  }
}
Ben ça affiche bien les checkbox cochées...mais comme dans mon exemple, l'user a choisi 3 fruits...ça affiche 3 fois la liste complète à cause de la boucle for (CQFD !)...mais je sais pas faire autrement