Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1736 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  If ---> elseif condition php aidez moi !!!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

If ---> elseif condition php aidez moi !!!!

n°1716591
beheadoth
Posté le 12-04-2008 à 02:55:02  profilanswer
 

Salut à tout le monde
 
J'ai une petite condition qui me pose depuis quelques heures  bcp des problèmes, j'ai beau cherché je ne vois nulle part mon erreur.
J'explique, J'ai un formulaire qui renvois les valeur de 5 listes (nommées liste1, liste2, liste3..etc.) à choix multiple  et 1 radio bouton (nommé sélection)
Je recupere mes liste à choix multiple, puis après j'ai fait une condition pour afficher que les listes qui contient qqch. --> MON BLEM j'ai recupere toujours 0 !!!!!! avec cette condition de mer**   :fou:  
La solution c'est peut etre un truc trop bête, mais moi j'abandonne avec ce code.  
Merci pour votre aide  
 
 
Code php recuperation des valeurs  de mes listes à choix multiple  :
 

Code :
  1. $liste1 = $_POST['liste1'];
  2. $liste2 = $_POST['liste2'];
  3. $liste3 = $_POST['liste3'];
  4. $liste4 = $_POST['liste4'];
  5. $liste5 = $_POST['liste5'];


 
voici ma condition php If elseif qui ne marche pas!!!!!! :fou:  :fou:  :fou:  
 

Code :
  1. if ($liste1!="" || $liste1!=0){
  2.    $corps.= "<td class=\"result_mail\">$liste1</td>";
  3.   }elseif ($liste2!="" || $liste2!=0){
  4.    $corps.= "<td class=\"result_mail\">$liste2</td>";
  5.   }elseif ($liste3!="" || $liste3!=0){
  6.    $corps.= "<td class=\"result_mail\">$liste3</td>";
  7.   }elseif ($liste4!="" || $liste4!=0){
  8.    $corps.= "<td class=\"result_mail\">$liste4</td>";
  9.   }elseif($selection=1){
  10.    $corps.= "<td class=\"result_mail\">$selection</td>";
  11.   }

mood
Publicité
Posté le 12-04-2008 à 02:55:02  profilanswer
 

n°1716605
sielfried
Posté le 12-04-2008 à 09:21:25  profilanswer
 

Ça veut dire quoi tu "récupères toujours 0" ? 0 liste ? Que valent $liste1 etc ? T'as essayé de les afficher pour voir ?
 
Dans tous les cas je soupçonne que t'ais pas compris fonctionne un "if"... avec ton truc il risque pas de t'afficher plus d'une ligne. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1716634
beheadoth
Posté le 12-04-2008 à 11:58:51  profilanswer
 

sielfried a écrit :

Ça veut dire quoi tu "récupères toujours 0" ? 0 liste ? Que valent $liste1 etc ? T'as essayé de les afficher pour voir ?

 

Dans tous les cas je soupçonne que t'ais pas compris fonctionne un "if"... avec ton truc il risque pas de t'afficher plus d'une ligne. :spamafote:

 

Mes  liste ne contient que des numéros, J'ai les affiché toutes en php  et  marche nickel, le valeur sont justes.
C'est vraiment ma condition if qui foire, car comme tu l'as bien dit il m'affiche que les résultat de la premier ligne de ma condition (donc ça s'arrete au premier if). Pour tous les autres il affiche 0 comme resultat.

 

Exemple des mes listes  :

 
Code :
  1. <select name="liste1" class="t2_form" id="liste1" onChange="fPrix1(this.form.elements['liste1'].options[this.form.elements['liste1'].selectedIndex].value)">
  2.           <option value="0">&nbsp;</option>
  3.           <option value="1">1</option>
  4.           <option value="2">2</option>
  5.           <option value="3">3</option>
  6.           <option value="4">4</option>
  7.         </select>
  8. <select name="liste2" class="t2_form" id="liste2" onChange="fPrix2(this.form.elements['liste2'].options[this.form.elements['liste2'].selectedIndex].value)">
  9.           <option value="0">&nbsp;</option>
  10.           <option value="1">1</option>
  11.           <option value="2">2</option>
  12.           <option value="3">3</option>
  13.           <option value="4">4</option>
  14.         </select>
  15. <select name="liste3" class="t2_form" id="liste3" onChange="fPrix3(this.form.elements['liste3'].options[this.form.elements['liste3'].selectedIndex].value)">
  16.           <option value="0">&nbsp;</option>
  17.           <option value="1">1</option>
  18.           <option value="2">2</option>
  19.           <option value="3">3</option>
  20.         </select>
  21. <select name="liste4" class="t2_form" id="liste4" onChange="fPrix4(this.form.elements['liste4'].options[this.form.elements['liste4'].selectedIndex].value)">
  22.           <option value="0">&nbsp;</option>
  23.           <option value="1">1</option>
  24.           <option value="2">2</option>
  25.         </select>
  26. <input name="selection" type="radio" id="1lit" value="1" onClick="fPrix5(1)"/>


Message édité par beheadoth le 12-04-2008 à 12:00:03
n°1716645
sielfried
Posté le 12-04-2008 à 12:33:11  profilanswer
 
n°1716705
CyberDenix
Posté le 12-04-2008 à 14:32:41  profilanswer
 

Je pense que tu confonds elseif (...) et else { if (...) }, non ?

Message cité 2 fois
Message édité par CyberDenix le 20-04-2008 à 13:51:30

---------------
Directeur Technique (CTO)
n°1716818
beheadoth
Posté le 12-04-2008 à 19:37:00  profilanswer
 

J'ai modifié ma condition selon la syntaxe proposée par le site php.net
mais ça ne marche toujours pas. Un moment j'ai pensé que j'arrivais pas à récupérer le bonnes variables donc j'ai refait ceci:
 
récupération  
$liste1 = $_POST['liste1'];
$liste2 = $_POST['liste2'];
$liste3 = $_POST['liste3'];
$liste4 = $_POST['liste4'];
 
 
J'ai fait un lighe qui m'affiche toutes mes variables :
echo "<br>liste1:".$liste1."<br>liste2:".$liste2."<br>liste3:".$liste3."<br>liste4:".$liste4;
 
et je constate que toutes me variables sont bien récupérées
Il me semble que tout est en ordre, c'est encore ma condition qui pose problème? est-elle mal codée ?
 

Code :
  1. if (($liste1!="" ) || ($liste1!="0" )){
  2.    $corps.= "<td class=\"result_mail\">$liste1</td>";
  3.   }elseif (($liste2!="" ) || ($liste2!="0" )){
  4.    $corps.= "<td class=\"result_mail\">$liste2</td>";
  5.   }elseif (($liste3!="" ) || ($liste3!="0" )){
  6.    $corps.= "<td class=\"result_mail\">$liste3</td>";
  7.   }elseif (($liste4!="" || $liste4!="0" )){
  8.    $corps.= "<td class=\"result_mail\">$liste4</td>";
  9.   }elseif($selection="1" ){
  10.    $corps.= "<td class=\"result_mail\">$selection</td>";
  11.   }

n°1716850
sielfried
Posté le 12-04-2008 à 21:24:29  profilanswer
 

C'est bien ce que je pensais, tu sais pas comment fonctionne un if. [:petrus75]  
 
Revois les bases. [:spamafote]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1717051
beheadoth
Posté le 13-04-2008 à 23:12:57  profilanswer
 

sielfried a écrit :

C'est bien ce que je pensais, tu sais pas comment fonctionne un if. [:petrus75]  
 
Revois les bases. [:spamafote]


 
:heink: Merci bcp de ton aide sielfried
t'est vraiment un mec formidable
 
   

n°1717064
art_dupond
je suis neuneu... oui oui !!
Posté le 14-04-2008 à 02:30:43  profilanswer
 

si tu veux que chaque condition soit évaluée, mets des if et pas des elseif

 

un elseif (ou un else) n'est évalué que si aucune des conditions précédentes n'est vraie.
Donc s'il y en a une de vraie, aucun des elseif suivant ne sera évalué.

  

Si mon fruit est une pomme je fais un crumble,
sinon, si c'est un fruit mûr, je le mange,
sinon, si c'est un durian, je cours très vite,
sinon, si c'est une orange, je demande qui l'a volée.

 

Message cité 1 fois
Message édité par art_dupond le 14-04-2008 à 02:30:56

---------------
oui oui
n°1717067
sielfried
Posté le 14-04-2008 à 07:13:42  profilanswer
 

beheadoth a écrit :


 
:heink: Merci bcp de ton aide sielfried
t'est vraiment un mec formidable
 
   


 
Bah, t'as le choix entre :
1. Aller revoir les bases et comprendre ton erreur (qui devrait te paraître évidente) par toi-même.
2. Trouver le moyen qu'on te donne la réponse, et revenir ici poser une question de ce genre dans 3 jours.
 
J'ai voté 1. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
mood
Publicité
Posté le 14-04-2008 à 07:13:42  profilanswer
 

n°1717197
beheadoth
Posté le 14-04-2008 à 12:59:26  profilanswer
 

art_dupond a écrit :

si tu veux que chaque condition soit évaluée, mets des if et pas des elseif
 
un elseif (ou un else) n'est évalué que si aucune des conditions précédentes n'est vraie.
Donc s'il y en a une de vraie, aucun des elseif suivant ne sera évalué.
 
 
 

Si mon fruit est une pomme je fais un crumble,
sinon, si c'est un fruit mûr, je le mange,
sinon, si c'est un durian, je cours très vite,
sinon, si c'est une orange, je demande qui l'a volée.


 


 
 
Ok merci,  j'ai vais essayer de le faire comme tu me dit.
 
 

n°1717491
weed
Posté le 14-04-2008 à 22:28:56  profilanswer
 

CyberDenix a écrit :

Je pense que tu confonds elseif (...) et et else { if (...) }, non ?


 
 [:anathema] euhh, ca ne reviendrait pas au meme ?

n°1718176
beheadoth
Posté le 16-04-2008 à 00:21:08  profilanswer
 

Je suis peut-être à côté de la plaque, peut-être je ne comprend pas non plus les else if ou les elseif
Mais voila j'ai de nouveau modifié mon conde pour arriver à ceci:  
 

Code :
  1. if (($liste1!="0" ) || ($liste1!="" )){
  2.   $corps.= "$liste1;";
  3.   }else{ if (($liste2!="0" ) || ($liste2!="" )){
  4.    $corps.= "$liste2;";
  5.    }else{ if (($liste3!="0" ) || ($liste3!="" )){
  6.     $corps.= "$liste3;";
  7.     }else{ if (($liste4!="0" ) || ($liste4!="" )){
  8.      $corps.= "$liste4;";
  9.      }else{ if($selection="1" ){
  10.      $corps.= "$selection;";
  11.      }
  12.     }
  13.    }
  14.   }
  15.  }


 
et ça ne marche toujours pas, mon script s'arrête à chaque fois à la première condition, puis des que je choisi une autre option qui ne'est pas la première il affiche 0
qqun pourait me dire en quoi mon code et faux? en quoi les autres façon de coder mes conditions (posté plus haut) étaient faussent ?
 
 
SVP j'ai besoin des reponses claires et non pas de reponses du genre:
"Purré mec faut vraiment que tu revoies le bases, on voit que tu comprends pas"
Car si j'ai posté ici c'est bien évidemment parce que j'arrive pas et je ne comprend pas, et s'rment parceque je n'0ai pas votre experience

n°1718181
shurik'n
Posté le 16-04-2008 à 00:45:00  profilanswer
 

beheadoth a écrit :


et ça ne marche toujours pas, mon script s'arrête à chaque fois à la première condition

 

Ben oui, parce qu'elle est toujours vraie, qu elle que soit la valeur de $liste1 (je pense que as confondu le OU et le ET (ce sont des operateurs logiques, révise tes tables de vérité  :)))
En plus tes if / else n ont pas de sens pour ce que tu veux faire et ne te donneront pas l affichage voulu.

 

Bref si tu tiens vraiment a utiliser tes if en cascade, change ca et c est bon, mais surtout essaye de comprendre pourquoi tes || et tes else n'avaient pas de sens :

 
Code :
  1. if (($liste1!="" ) && ($liste1!="0" ))$corps.= "<td class=\"result_mail\">$liste1</td>";
  2. if (($liste2!="" ) && ($liste2!="0" ))$corps.= "<td class=\"result_mail\">$liste2</td>";
  3. if (($liste3!="" ) && ($liste3!="0" ))$corps.= "<td class=\"result_mail\">$liste3</td>";
  4. if (($liste4!="" ) && ($liste4!="0" ))$corps.= "<td class=\"result_mail\">$liste4</td>";
  5. if($selection=="1" )$corps.= "<td class=\"result_mail\">$selection</td>";
 

edit (en rouge):  il faut un "==" et non un "=", sinon tu fais une simple affection et ton if est du coup toujours vrai ...


Message édité par shurik'n le 16-04-2008 à 00:50:28
n°1718217
sielfried
Posté le 16-04-2008 à 08:07:04  profilanswer
 

beheadoth a écrit :


SVP j'ai besoin des reponses claires et non pas de reponses du genre:
"Purré mec faut vraiment que tu revoies le bases, on voit que tu comprends pas"
Car si j'ai posté ici c'est bien évidemment parce que j'arrive pas et je ne comprend pas, et s'rment parceque je n'0ai pas votre experience


 
Non, si tu viens ici poser ce genre de questions c'est parce que t'as manifestement jamais appris à programmer, ou que ton prof/bouquin/site web était nul à chier. Ou encore parce que ça fait trop longtemps.
 
Rends-toi service et va lire un bon tuto sur le net, notamment sur les bases des opérateurs logiques et des structures de contrôle basiques pour commencer. Ça t'évitera de coder des conditions au hasard en espérant que ça fonctionne, tu gagneras du temps et tu te pourras te concentrer sur des vrais problèmes à la place. [:petrus75]  
 
Quelques pistes :
http://fr.php.net/manual/fr/langua [...] ctures.php
http://fr.php.net/manual/fr/langua [...] ogical.php


Message édité par sielfried le 16-04-2008 à 08:07:17

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1718281
beheadoth
Posté le 16-04-2008 à 09:37:30  profilanswer
 

Merci bcp shurik'n, j'ai revisé les tables de verité comme tu m'as dit je crois que j'ai compris cette fois

n°1718393
weed
Posté le 16-04-2008 à 11:18:25  profilanswer
 

il faut remercier aussi beheadoth qui t'a indiqué c'est au niveau logique que tu rencontrais des difficultés sur les opérateurs logiques ...
 

CyberDenix a écrit :

Je pense que tu confonds elseif (...) et et else { if (...) }, non ?


je réitère. Pour moi un :

Code :
  1. if (toto == tata) {
  2. //traitement
  3. } elseif (titi == tutu)


 
est kifkif borico  
 

Code :
  1. if (toto == tata) {
  2. //traitement
  3. } else {
  4.       if (titi == tutu) {
  5.       //traitement
  6.       }
  7. }



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  If ---> elseif condition php aidez moi !!!!

 

Sujets relatifs
[Résolu] MySQL et condition sur le résultat retourné par une requêteAidez moi à éliminer les friend!!
[Excel] Condition et changement de couleurEquivalent de ma condition php en javascript (ereg, voire checkdate)
Aidez moi les Amis !!! (Turbo Pascal)[Resolu] Condition pour changer une class
Cherche personnes qui pourrait m'aidez pour la création d'un jeu.aidez moi svp svp
Bloqué sur une condition logique VB......[Résolu]pb redirection selon une condition
Plus de sujets relatifs à : If ---> elseif condition php aidez moi !!!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR