Alimentation d'une balise SELECT

Eléphant du PHP | 64 Messages

12 sept. 2005, 15:15

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

12 sept. 2005, 15:18

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.
Modifié en dernier par sadeq le 12 sept. 2005, 15:24, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 64 Messages

12 sept. 2005, 15:22

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)!