Page 1 sur 1

Condition

Posté : 28 août 2006, 19:16
par knops
Rebonsoir voila, SVp je voudrais savoir comment dire entre ca et ca en php??
c'est quoi l'erreur ici
if ($data['vote']== 0 || $data['vote']>= 10)
{
  echo '<img border="0" src="img/1.jpg"> ';
}
if ($data['vote']== 21 || $data['vote']>= 30)
{
  echo '<img border="0" src="img/2.jpg"> ';
}
if ($data['vote']== 31 || $data['vote']>= 40)
{
  echo '<img border="0" src="img/3.jpg"> ';
}

Posté : 28 août 2006, 19:20
par jojolapine
Simplement comme ça, j'ai pas essayer de regarde en détail, mais dans requête, tu selectionnes seulement le champ 'id', et tu lui demandes ensuite d'afficher le champ 'vote', que la requête n'a pas récupérée ;-), ensuite, si tu as plus de deux valeur possible pour le champ vote, tu pourrais peut-être mettre en place une boucle :-)
--------
C'est gentil de changer complètement de sujet après avoir lu ma réponse ! :evil:
En plus ça ne peut plus reservir aux autres... Pas très constructif!
Et vu les maigres connaissances en php (et même en algorithmes de programmation) que tu nous laisses entrevoir, je ne saurait que te conseiller d'aller faire un tour vers ces sites:
http://www.siteduzero.com
http://www.phpdebutant.org
et d'autres sites, qui possèdent des tutoriaux et cours pour débutants

Posté : 28 août 2006, 21:02
par charabia
[---------------][---------------][---------------][---------------]
0--------------10--------------20-------------30--------------40

Lorsque tu veux faire des conditions "entre une valeur et une autre" tu dois parcourir un tit arbre (comme celui que j'ai fait plus haut).

Là on désire afficher 1.jpg si la valeur se trouve entre 0 et 10. Donc cette valeur doit être supérieure ou égale à 0 et inférieure ou égale à 10.

Suivant cet algo, essaie de faire la première condition et idem pour le reste ;)

Posté : 28 août 2006, 23:36
par albat
Ce qui m'intrigue dans ton code, c'est la définition des bornes de tes intervalles.
//
if ($data['vote']== 0 || $data['vote']>= 10) echo '<img border="0" src="img/1.jpg"> ';
if ($data['vote']==21 || $data['vote']>= 30) echo '<img border="0" src="img/2.jpg"> ';
if ($data['vote']==31 || $data['vote']>= 40) echo '<img border="0" src="img/3.jpg"> ';
Si $data['vote'] vaut 31 (par exemple), les 3 conditions seront vérifiées.

C'est vraiment ce que tu souhaites ??? :?: :shock: :-k

Posté : 29 août 2006, 00:03
par Ryle
Ben à priori non, ce n'est pas ce qu'il souhaite, puisque sa question initiale, c'est comment défini un interval fermé ;)

La réponse est dans le ET au lieu du OU :)
if ($data['vote'] >= 10 && $data['vote'] < 20) {  // 10 <= xx < 20
  echo '<img border="0" src="img/2.jpg"> '; 
} 

Par contre, tu dois pouvoir grandement simplifier en divisant ta note par 10 et en arrondisant à l'inférieur. Tu n'aurais même plus besoin de gérer les différents cas, suffit juste d'avoir une prévu image pour chaque chffre possible :
echo '<img border="0" src="img/' . ( floor($data['vote']/10) ) . '.jpg"> '; 

Posté : 29 août 2006, 00:23
par albat
echo '<img border="0" src="img/' . ( floor($data['vote']/10) ) . '.jpg"> '; 
Brillant et élégant ! :pouce: =D>