Page 1 sur 1

Alimentation d'une balise SELECT

Posté : 12 sept. 2005, 15:15
par xgregx
bonjour,

je voudrais alimenter un select, j'ai le code suivant:
<?
$sql = "select * from ge_galerie";
$res = mysql_query($sql);
while ($var = mysql_fetch_array($res)){
$nomg = $var['ga_nom'];

if($nomg = $galerie){
echo "<option value=\"".$nomg."\" selected=\"selected\">".$nomg."</option>";
}
else{
echo "<option value=\"".$nomg."\">".$nomg."</option>";
}
}
?>
mon problème c'est que lorsque la comparaison est bonne, je n'ai que la même galerie(il s'agit de galeries photo) qui s'affiche plusieurs fois dans mon select...et je ne comprends pas pourquoi!

Si vous voyez l'erreur, je suis preneur !
Merci

Posté : 12 sept. 2005, 15:18
par sadeq
l'opérateur de comparaison s'écrit == ne pas le confondre avec le signe d'affectation =
//ne pas écrire
if($nomg = $galerie){ ...

//écrire
if($nomg == $galerie){ ...

Explication de ton beug:
puisque = est une affectation $nomg reçoit la valeur de $galerie et puisqu'une valeur est affectée le test if trouve que $nomg est créée en tant que variable (équivalent de if ($nomg) ou if (isset($nomg))) c'est pour cela que la cas vrai du if sera toujours exécuté.
C'est d'ailleurs pourquoi, ta boucle te remplie plusieurs même valeurs dans la liste HTML select.

Posté : 12 sept. 2005, 15:22
par xgregx
l'opérateur de comparaison s'écrit == ne pas le confondre avec le signe d'affectation =
//ne pas écrire
if($nomg = $galerie){ ...

//écrire
if($nomg == $galerie){ ...

Super, merci beaucoup! Je suis trop fatigué moi :o)!