4 votes

si, sinon si déclaration d'écho

Si la valeur est 1, le fond de la cellule est vert avec le numéro 1 dans la cellule. Si la valeur est 0, le fond de la cellule est jaune et contient un 0.

J'aimerais afficher "Oui" au lieu de "1" et "Non" au lieu de "0".

     if($row['play']  == 1){
        echo "<td bgcolor='green'>" . $row['play'] . "</td>";
        }
     else if ($row['play']  == 0){
        echo "<td bgcolor='yellow'>" . $row['play'] . "</td>";
        }                    

Les valeurs proviennent d'une case à cocher (1) et d'un champ caché (0). Le champ MySQL est BOOL.

Existe-t-il un moyen plus simple ou plus efficace d'y parvenir ?

6voto

Marcin Orlowski Points 24633

Vous pouvez le faire :

 if($row['play']  == 1){
    echo "<td bgcolor='green'>Yes</td>";
    }
 else if ($row['play']  == 0){
    echo "<td bgcolor='yellow'>No</td>";
    }    

mais je dirais que switch/case c'est plus confortable :

switch( $row['play'] ) {
   case 1:
       echo "<td bgcolor='green'>Yes</td>";
       break;

   default:
       echo "<td bgcolor='yellow'>No</td>";
       break;
}

0voto

h2ooooooo Points 18164

Vous pouvez le convertir en un int, et ensuite créer une condition s'il est supérieur à zéro :

if((int)$row['play'] > 0) {
    echo "<td bgcolor='green'>Yes</td>";
}
else {
    echo "<td bgcolor='yellow'>No</td>";
}

Par ici, play pourrait être 1, 2, 3, 4, 5, etc.

0voto

Jari Points 5820
$words = array(
 0 => "No",
 1 => "Yes"
) ;

if($row['play']  == 1){
  echo "<td bgcolor='green'>" . $words[(int)$row['play']] . "</td>";
} else if ($row['play']  == 0){
  echo "<td bgcolor='yellow'>" . $words[(int)$row['play']] . "</td>";
} 

Ou encore mieux :

$map = array(
  0 => array("word"=>"No", "color"=>"yellow"),
  0 => array("word"=>"Yes", "color"=>"green"),
) ;

$current = (int) $row['play'] ;
echo "<td bgcolor='{$map[$current]['color']}'>{$map[$current]['word']}</td>";

0voto

Ravi Points 463

Essayez ceci

if($row['play']  == 1)
{
    echo "<td bgcolor='green'>Yes</td>";
}
 else if ($row['play']  == 0)
{
    echo "<td bgcolor='yellow'>No</td>";
}

0voto

Mark Points 11

Quelque chose comme ça va le faire -

echo "<td bgcolor='" . $row['play'] == 1 ? "green" : "yellow" . "'> . $row['play'] == 1 ? "No" : "Yes" . "</td>";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X