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

  FORUM HardWare.fr
  Programmation
  PHP

  une condition dans une boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

une condition dans une boucle

n°960026
attentio
Posté le 23-01-2005 à 16:50:56  profilanswer
 

bonjour,
je ne sais pas comment m'y prendre pour mettre un if dans un while

Code :
  1. while($resultats=mysql_fetch_array($req_commandes)){
  2. //condition
  3. if (($resultats['paiement']=='virement')
  4. $picto='ok';
  5. else if ($resultats['paiement']=='cheque'')
  6. $picto='ok2';
  7. else if ($resultats['paiement']=='carte'')
  8. $picto='ok3';
  9. else $picto='non';
  10. //affichage de la liste
  11. echo $resultats['paiement'];//pas de pb
  12. echo $picto //probleme  
  13. echo '<br>';
  14. }


ce qu'il se passe, c'est qu'il m'affiche la meme valeur quelque soit $resultats['paiement']
 
comment dois-je m'y prendre
 
merci de votre aide


Message édité par attentio le 24-03-2005 à 20:43:16

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
mood
Publicité
Posté le 23-01-2005 à 16:50:56  profilanswer
 

n°960052
cerel
Posté le 23-01-2005 à 17:20:21  profilanswer
 

attentio a écrit :

bonjour,
je ne sais pas comment m'y prendre pour mettre un if dans un while

Code :
  1. while($resultats=mysql_fetch_array($req_commandes)){
  2. //condition
  3. if (($resultats['paiement']=='virement')
  4. $picto='ok';
  5. else if ($resultats['paiement']=='cheque'')
  6. $picto='ok2';
  7. else if ($resultats['paiement']=='carte'')
  8. $picto='ok3';
  9. else $picto='non';
  10. //affichage de la liste
  11. echo $resultats['paiement'];//pas de pb
  12. echo $picto //probleme  
  13. echo '<br>';
  14. }


ce qu'il se passe, c'est qu'il m'affiche la meme valeur quelque soit $resultats['paiement']
 
comment dois-je m'y prendre
 
merci de votre aide


 

Citation :


if (($resultats['paiement']=='virement')  


C'est normal les 2 parentheses ? "((", ca ne devrait pas etre "(" seulement ?
A moins que cela ne soit qu'une faute lors de la copie de ton code.

n°960083
KangOl
Profil : pointeur
Posté le 23-01-2005 à 17:53:47  profilanswer
 

et switch tu connais ?


---------------
Nos estans firs di nosse pitite patreye...
n°960114
T509
$job-&gt;GetJob(now)
Posté le 23-01-2005 à 18:25:18  profilanswer
 

Citation :

($resultats['paiement']=='cheque'')


Un autre bug sur cette ligne ...

n°960119
cerel
Posté le 23-01-2005 à 18:36:22  profilanswer
 

T509 a écrit :

Citation :

($resultats['paiement']=='cheque'')


Un autre bug sur cette ligne ...


 
A oui je l'avais rate celle la, il y aussi la suivante dans le meme cadre :

Citation :

else if ($resultats['paiement']=='carte'')  


 
Avec toutes ces fautes je suis presque a me demander si ce code ne produit pas d'erreur ... A moins que toutes ces erreurs "s'anullent" et produisent un code syntaxiquement correct...


Message édité par cerel le 23-01-2005 à 18:38:31
n°960120
KangOl
Profil : pointeur
Posté le 23-01-2005 à 18:38:00  profilanswer
 

AMHA tu devrais utilsier un vrai editeur...


---------------
Nos estans firs di nosse pitite patreye...
n°960293
Hermes le ​Messager
Breton Quiétiste
Posté le 23-01-2005 à 21:56:23  profilanswer
 

+1 C'est quoi ces {} manquants ? :heink:

n°960426
jaywax
Posté le 24-01-2005 à 09:18:11  profilanswer
 

Hermes le Messager a écrit :

+1 C'est quoi ces {} manquants ? :heink:


Tu n'es pas obligé de placer ta condition dans ton while... Voila ce que je ferais à ta place (mais je suis pas trés bon  :cry:) :

Code :
  1. while ($champs = mysql_fetch_array($req_commandes)){
  2.                                                     $paiement= $champs["paiement"];
  3. }
  4. switch ($paiement){
  5.                    case virement:
  6.                                  $picto='ok';
  7.                                  break;
  8.                    //etc...
  9.                    }


n°960449
Xav_
The only one...
Posté le 24-01-2005 à 10:05:12  profilanswer
 

jaywax a écrit :

Tu n'es pas obligé de placer ta condition dans ton while... Voila ce que je ferais à ta place (mais je suis pas trés bon  :cry:) :

Code :
  1. while ($champs = mysql_fetch_array($req_commandes)){
  2.        $paiement= $champs"paiement"];
  3. }
  4. switch ($paiement){
  5.                    case virement:
  6.                                  $picto='ok';
  7.                                  break;
  8.                    //etc...
  9.                    }



 
 
non il est pas obligé, c'est juste que s'il ne le fait pas, au lieu de tester chacune des valeur renvoyées par la requete, ça ne testera que le dernier (celui dans lequel s'est arrêté le while) et je ne pense qu'il veuille afficher son image que pour le dernier....


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°960453
jaywax
Posté le 24-01-2005 à 10:09:29  profilanswer
 

Xav_ a écrit :

non il est pas obligé, c'est juste que s'il ne le fait pas, au lieu de tester chacune des valeur renvoyées par la requete, ça ne testera que le dernier (celui dans lequel s'est arrêté le while) et je ne pense qu'il veuille afficher son image que pour le dernier....


Ce qui prouve effectivement que je ne suis pas trés bon  :lol:  

mood
Publicité
Posté le 24-01-2005 à 10:09:29  profilanswer
 

n°960454
KangOl
Profil : pointeur
Posté le 24-01-2005 à 10:12:22  profilanswer
 

en plus le case est pas juste :o


---------------
Nos estans firs di nosse pitite patreye...
n°960457
Xav_
The only one...
Posté le 24-01-2005 à 10:14:10  profilanswer
 

jaywax a écrit :

Ce qui prouve effectivement que je ne suis pas trés bon  :lol:


 
je ne l'ai pas dis de peur que tu le prenne mal, mais c'est là où je voulais en venir ;)...  
tout le monde a débuté, on a tous dis des conneries au début (enfin en ce qui me concerne j'en ai dis), donc à l'avenir test un code dont tu n'est pas sur avant de le filer comme exemple ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°960459
ratibus
Posté le 24-01-2005 à 10:16:15  profilanswer
 

Salut
 
Moi je ferais comme ça :

Code :
  1. $pictos = array('virement' => 'ok', 'cheque' => 'ok2', 'carte' => 'ok3');
  2. $pictoDefault = 'non';
  3. while ($resultats=mysql_fetch_array($req_commandes)) {
  4. //condition
  5. $picto = isset($pictos[$resultats['paiement']]) ? $pictos[$resultats['paiement']] : $pictoDefault;
  6. //affichage de la liste
  7. echo $resultats['paiement'].$picto.'<br>';
  8. }


Message édité par ratibus le 24-01-2005 à 10:16:38
n°960465
KangOl
Profil : pointeur
Posté le 24-01-2005 à 10:20:00  profilanswer
 

la, faut jouer avec array_keys, array_values et in_array


---------------
Nos estans firs di nosse pitite patreye...
n°960466
Xav_
The only one...
Posté le 24-01-2005 à 10:20:44  profilanswer
 

joli code ratibus, mais utiliser la forme réduite du if alors que la personne semble débuter, tu risque de le dérouter, met lui au moins la correspondance en syntaxe "classique" ;)
Le but est de l'aider à apprendre, pas de lui filer un code qu'il ne va peut etre meme pas comprendre....


Message édité par Xav_ le 24-01-2005 à 10:21:16

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°960469
KangOl
Profil : pointeur
Posté le 24-01-2005 à 10:22:22  profilanswer
 

KangOl a écrit :

la, faut jouer avec array_keys, array_values et in_array


meme pas en fait...
meme moi j'ai meme eu du mal a voir la subtilité du code, alors...


---------------
Nos estans firs di nosse pitite patreye...
n°960473
Xav_
The only one...
Posté le 24-01-2005 à 10:25:11  profilanswer
 

Citation :

meme moi j'ai meme eu du mal a voir la subtilité du code, alors...


hé oui, et pour t'avoir souvent croiser ici où sur PPC, je sais que tu es loin de débuter en la matière, donc ça renforce mon précédent post à ratibus


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°960475
KangOl
Profil : pointeur
Posté le 24-01-2005 à 10:25:45  profilanswer
 

bon, c'est le matin aussi :D


---------------
Nos estans firs di nosse pitite patreye...
n°960488
ratibus
Posté le 24-01-2005 à 10:36:56  profilanswer
 

Xav_ a écrit :

joli code ratibus, mais utiliser la forme réduite du if alors que la personne semble débuter, tu risque de le dérouter, met lui au moins la correspondance en syntaxe "classique" ;)
Le but est de l'aider à apprendre, pas de lui filer un code qu'il ne va peut etre meme pas comprendre....


J'ai hésité effectivement à lui montrer l'opérateur ternaire que j'aime bien :D
 
Voici le code en + clair :

Code :
  1. $pictos = array('virement' => 'ok', 'cheque' => 'ok2', 'carte' => 'ok3');
  2. $pictoDefault = 'non';
  3. while ($resultats=mysql_fetch_array($req_commandes)) {
  4. //condition
  5. if (isset($pictos[$resultats['paiement']])) {
  6.  $picto = $pictos[$resultats['paiement'];
  7. } else {
  8.  $picto = $pictoDefault;
  9. }
  10. //affichage de la liste
  11. echo $resultats['paiement'].$picto.'<br>';
  12. }

n°960557
Xav_
The only one...
Posté le 24-01-2005 à 11:52:14  profilanswer
 

Citation :

J'ai hésité effectivement à lui montrer l'opérateur ternaire que j'aime bien :D
 
Voici le code en + clair :  
[...]


 
merci pour lui :D


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°960893
cerel
Posté le 24-01-2005 à 16:59:27  profilanswer
 

ratibus a écrit :

J'ai hésité effectivement à lui montrer l'opérateur ternaire que j'aime bien :D
 
Voici le code en + clair :

Code :
  1. $pictos = array('virement' => 'ok', 'cheque' => 'ok2', 'carte' => 'ok3');
  2. $pictoDefault = 'non';
  3. while ($resultats=mysql_fetch_array($req_commandes)) {
  4. //condition
  5. if (isset($pictos[$resultats['paiement']])) {
  6.  $picto = $pictos[$resultats['paiement'];
  7. } else {
  8.  $picto = $pictoDefault;
  9. }
  10. //affichage de la liste
  11. echo $resultats['paiement'].$picto.'<br>';
  12. }



 
Correction d'une petite faute :

Citation :


 if (isset($pictos[$resultats['paiement']])) {
  $picto = $pictos[$resultats['paiement']];
 } else {


n°960921
attentio
Posté le 24-01-2005 à 17:39:07  profilanswer
 

OK, merci a tous encore une fois !

mood
Publicité
Posté le   profilanswer
 


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

  une condition dans une boucle

 

Sujets relatifs
Faire une boucle ?PB dans une boucle avec la propriété Selected !!!
problème de boucleAccélérer une boucle
[PHP] Problème avec une boucle[MySQL] Update d une table sous une seule condition
Condition BatchPassage de variable depuis une boucle ???
[shell linux] condition boucle forUn boucle avec une condition...
Plus de sujets relatifs à : une condition dans une boucle


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