problème de comparaison.. apparemment

problème de comparaison.. apparemment - PHP - Programmation

Marsh Posté le 17-02-2005 à 10:52:50    

Bonjour tout le monde,
 
En faisant un page de formulaire, je suis tombé sur un petit problème : je voudrais n'afficher certains mois dans une balise SELECT que dans certaines conditions. J'ai donc ecris le code suivant :
 

Code :
  1. echo "<select name=\"month\">";
  2.                        echo "<option value=\"none\">-";
  3.                        if ($tour=="Giverny" || $tour=="Auvers and Giverny" ){
  4.                            echo "<option value=\"janvier\">January";
  5.                            echo "<option value=\"fevrier\">February";
  6.                            echo "<option value=\"mars\">March";
  7.                        }
  8.                        echo "<option value=\"avril\">April";
  9.                        echo "<option value=\"mai\">May";
  10.                        echo "<option value=\"juin\">June";
  11.                        echo "<option value=\"juillet\">July";
  12.                        echo "<option value=\"aout\">August";
  13.                        if ($tour!="Giverny" || $tour!="Auvers and Giverny" ){
  14.                            echo "<option value=\"septembre\">September";
  15.                            echo "<option value=\"octobre\">October";
  16.                            echo "<option value=\"novembre\">November";
  17.                            echo "<option value=\"decembre\">December";
  18.                        }
  19.                       echo "</select>";


 
Mon problème est qu'apparemment, le test fonctionne avec l'égalité, mais pas avec la différence. J'avoue que je ne comprends pas trop.
Vous pourriez m'expliquer s'il vous plait ?
 
Merci beaucoup.

Reply

Marsh Posté le 17-02-2005 à 10:52:50   

Reply

Marsh Posté le 17-02-2005 à 10:55:22    

Déjà modifie ta syntaxe lourdingue avec genre :

echo '<select name="month">';


Ce sera plus lisible ;)
 
Aussi y'a quoi dans $tour ?

Reply

Marsh Posté le 17-02-2005 à 10:56:43    

ok merci pour la premiere remarque :)
 
dans $tour il y a le nom du tour, c'est-a-dire par exemple Giverny justement.

Reply

Marsh Posté le 17-02-2005 à 11:10:11    

Le pire c'est qu'ailleurs le test fonctionne
 

Code :
  1. echo '<select name="month">';
  2.                        echo '<option value="none">-';
  3.                        if ($tour!="Giverny" || $tour!="Auvers and Giverny" ){
  4.                            echo '<option value="janvier">January';
  5.                            echo '<option value="fevrier">February';
  6.                            echo '<option value="mars">March';
  7.                        }
  8.                        echo '<option value="avril">April';
  9.                        echo '<option value="mai">May';
  10.                        echo '<option value="juin">June';
  11.                        echo '<option value="juillet">July';
  12.                        echo '<option value="aout">August';
  13.                        if ($tour!="Giverny" || $tour!="Auvers and Giverny" ){
  14.                            echo '<option value="septembre">September';
  15.                            echo '<option value="octobre">October';
  16.                            echo '<option value="novembre">November';
  17.                            echo '<option value="decembre">December';
  18.                        }
  19.                       echo '</select>';
  20.                       echo 'Tour date :<br/>';
  21.                       echo 'tour != Giverny : ';
  22.                              if ($tour!="Giverny" ) echo 'true<br/>';
  23.                              else echo 'false<br/>';


Reply

Marsh Posté le 17-02-2005 à 11:20:41    

c'est bon c'est moi qui suis vraiment trop mauvais : il fallait que je fasse un test avec :
 
$tour!="Giverny" && $tour!="Auvers and Giverny"
 
ahaha....  :sweat:

Reply

Marsh Posté le 17-02-2005 à 11:20:44    

Citation :

Mon problème est qu'apparemment, le test fonctionne avec l'égalité, mais pas avec la différence


c'est des pb courant ça, et il faut donc faire gaffe à bien penser ses équations...
 
En effet, tu lui demande si différent de "x" ou si différent de "x+y"
mais "x+y" est différent de "x" par conséquent, l'une de tes 2 conditions est TOUJOURS VRAIE si l'autre est fausse, tu dois te retrouver à rentrer dans le if à chaque fois je pense...
 
Repense à ce que tu veux exactement comme comportment et code le en conséquence, mais tu n'est pas le premier (ni le dernier) à te faire avoir sur des OU dans les comparaison de différence...
 
EDIT: ben trop tard, tu as trouvé, en effet c'est souvent un && plutot qu'un || quand on exclu dans un test


Message édité par Xav_ le 17-02-2005 à 11:23:17

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 17-02-2005 à 11:21:23    

merci Xav_ :)

Reply

Marsh Posté le 17-02-2005 à 11:22:48    

ben de rien, je suis un peu arrivé aprèsla bataille, mais bon ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed