Page 1 sur 1

Boucle capricieuse

Posté : 25 nov. 2012, 08:21
par HunabKu
Bonjour,
je développe un site en php et j'ai un souci dans une boucle.
Je voudrais que celle-ci fasse la chose suivante :
- Si la chaine $row["Name"] contient Red, le texte est Rouge,
- Si la chaine $row["Name"] contient Blue, le texte est Bleu,
- Si la chaine $row["Name"] contient Green, le texte est Vert,
- Sinon le texte est Noir.

Mon code :
while ($row = mysql_fetch_assoc($result))
{
$tronque = '';
$tronque = substr($row["Name"], 0, 3);
if ($tronque= 'Red')
{
echo '<td><font color="Red">'.$row["Name"].'</font></td></tr><tr><td>';
}
elseif ($tronque= 'Blue')
{
echo '<td><font color="Blue">'.$row["Name"].'</font></td></tr><tr><td>';
}
elseif ($tronque= 'Green')
{
echo '<td><font color="Green">'.$row["Name"].'</font></td></tr><tr><td>';
}
else
{
echo $row["Name"];
}
}

Mon problème est que tout s'affiche en rouge. Sauriez-vous d’où cela peux venir s'il vous plait ?

Re: Boucle capricieuse

Posté : 25 nov. 2012, 11:32
par sirakawa
Bjr, mets donc un switch au lieu du if/else, c'est plus facile à étendre, et utilise une feuille de style car font color est déprécié depuis un moment.

<style>
*.rouge
{
color:red;
}
*.vert
{
color:green;
}
</style>
<?PHP
$row= array();
$row['name'] ="Vert";
$tronque = '';
$nom =$row['name'];
$tronque = substr($nom, 0, 3);
switch ($tronque)
{
case "Red":
case "red":
$le_style = "class ='rouge'";
break;
case "Vert":
case "vert":
$le_style = "class ='vert'";
break;
}
$chaine ="<table><tr> <td $le_style>$nom</td></tr></table>";
print "$chaine";
?>

Re: Boucle capricieuse

Posté : 25 nov. 2012, 13:14
par Saian
Et au passage l'opérateur d'égalité c'est ==
Le = c'est l'opérateur d'affectation.
Donc pour tester une égalité dans le if :
if ($tronque ==  'Red')

Re: Boucle capricieuse

Posté : 25 nov. 2012, 19:36
par HunabKu
Merci beaucoup à vous !
Je pense que ça va résoudre mon problème.