4

値が 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 です。

これを達成するためのより簡単な/より良い方法はありますか?

4

6 に答える 6

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;
}
于 2013-04-11T14:51:02.313 に答える
0

このような何かがそれを行います -

echo "<td bgcolor='" . $row['play'] == 1 ? "green" : "yellow" . "'> . $row['play'] == 1 ? "No" : "Yes" . "</td>";
于 2013-04-11T14:53:35.637 に答える
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>";
于 2013-04-11T14:54:04.440 に答える
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 などの可能性があります。

于 2013-04-11T14:51:39.730 に答える
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>";
于 2013-04-11T14:51:41.363 に答える