Boucle capricieuse

Eléphanteau du PHP | 11 Messages

25 nov. 2012, 08:21

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 ?

Mammouth du PHP | 2278 Messages

25 nov. 2012, 11:32

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";
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Mammouth du PHP | 1609 Messages

25 nov. 2012, 13:14

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')
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 11 Messages

25 nov. 2012, 19:36

Merci beaucoup à vous !
Je pense que ça va résoudre mon problème.