par
angebleu17 » 20 juil. 2007, 17:02
Bonjour,
En fait j'amerais afficher une liste de pays sous forme de case à cocher. Je récupére par une requete les pays déja choisi par l'utilisateur, dc ceux qui ont était choisi par l'utilisateur doivent être coché.
Je récupére aussi la liste de tous les pays, voici mon code :
$tab=array();
$res= mysql_query("select champ FROM champ WHERE id = '$id' order by champ"); //Correspond aux pays coché
$total = mysql_num_rows ($res);
{while($ligne= mysql_fetch_array ($res))
array_push($tab,$ligne['champ']);
}
//tab est le tableau des pays coché
$resultat=mysql_query("select * from pays"); //Récupére tous les pays
while ($valeur1=mysql_fetch_array($resultat))
{
$_pays = $valeur1['pays'];
for ($i=0; $i < $total ; $i++)
{
if (isset($tab[$i]))
{
if ($valeur1["pays"] == $tab[$i])
{
echo'<TR><TD align ="left" valign="center" class="texte_titre"><INPUT type="checkbox" name="pays[]" checked value="'.$valeur1['pays'].'">'.$valeur1['pays'].'</td></tr> ';
}
else
{
echo'<TR><TD align ="left" valign="center" class="texte_titre"><INPUT type="checkbox" name="pays[]" value="'.$valeur1['pays'].'">'.$valeur1['pays'].'</td></tr> ';
}
}
else
{
echo'<TR><TD align ="left" valign="center" class="texte_titre"><INPUT type="checkbox" name="pays[]" value="'.$valeur1['pays'].'">'.$valeur1['pays'].'</td></tr> ';
}
}
}
Donc les pays coché s'affiche bien, mais tous les pays sont en double (car j'ai 2 pays coché, du coup avec le for ça affiche tous les pays 2 fois).
Comment faire pour affiquer qu'une fois les pays non coché ??
Merci d'avance pour vos réponses !