如果,否则如果是echo语句

时间:2013-04-11 14:49:09

标签: php mysql if-statement

如果值为1,则单元格bg为绿色,单元格中为#1 如果值为0,则单元格bg为黄色,其中为0。

我想显示“是”而不是“1”和“否”而不是“0”

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

值来自复选框(1)和隐藏字段(0)MySQL字段是BOOL。

有更简单/更好的方法来实现这一目标吗?

6 个答案:

答案 0 :(得分:6)

你可以这样做:

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

但我会说switch/case更舒服:

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

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

答案 1 :(得分:0)

您可以将其强制转换为int,然后在条件高于零时创建条件:

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

这样,play可以是1,2,3,4,5,..等等。

答案 2 :(得分:0)

$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>";
} 

甚至更好:

$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>";

答案 3 :(得分:0)

试试这个

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

答案 4 :(得分:0)

这样的事情会做到 -

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

答案 5 :(得分:0)

您可以通过执行以下操作来减少echo语句:

if($row['play']  == 1){
   $color = 'green';
   $text = 'yes';
}
else
{
   $color = 'red';
   $text = 'no'; 
}
// Assign the color and text values based on the input.

echo "<td bgcolor=$color>$data</td>";