用if语句改变td的颜色

时间:2012-08-16 10:40:10

标签: php mysql

我正在尝试使用if - 语句来更改<td>的颜色。

基本上,我有一个简单的查询来从数据库中检索信息。 另外,我在那里有一个列,它可以保存信息,就像任务是否完成一样。当我检索到所有这些信息时,我需要完成的任务是绿色的,而其他任务则没有任何颜色。

我已经接受了答案,但我找不到令我满意的任何东西。

例如:


$qry = mysql_query("select * from table");
$recs = array();
while($row = mysql_fetch_array($qry))
$recs[]=$row;
mysql_free_result($qry);

我试图将while语句添加到上面的代码中,但我感到很困惑并且它不起作用:(

我正在使用heredoc打印结果: 如何在这里给他们颜色?


<?php 
$last_id=0;
foreach($recs as $rec)
{   
    $html=<<<HTML
<tr>
<td><b>Номер</b></td>
<td>$rec[0]</td>
</tr>
<tr>
<td><b>Номер документа</b></td>
<td>$rec[1]</td>
</tr>
<tr>
<td><b>Дата регистрации</b></td>
<td>$rec[8]</td>
</tr>
<tr>
<td><b>От кого</b></td>
<td>$rec[2]</td>
</tr>
<tr>
<td><b>По</b></td>
<td>$rec[4]</td>
</tr>
<tr>
<td><b>Краткое содержание</b></td>
<td>$rec[3]</td>
</tr>
<tr>
<td><b>Исполнитель</b></td>
<td>$rec[5]</td>
</tr>
<tr>
<td><b>Срок исполнения</b></td>
<td>$rec[6]</td>
</tr>
<tr>
<td><b>Срок исполнения продлен до</b></td>
<td><b>$rec[10]</b></td>
</tr>
<tr>
<td><b>Прислан</b></td>
<td>$rec[9]</td>
</tr>
<tr>
<td><b>Примечание</b></td>
<td>$rec[7]</td>
</tr>
<tr>
<td bgcolor="#838B83">&nbsp;</td>
<td bgcolor="#838B83">&nbsp;</td>
</tr>
HTML;
    print $html;        
    if($rec[0]>$last_id)
        $last_id=$rec[0];
};
$new_id=$last_id+1;
?>

4 个答案:

答案 0 :(得分:5)

而不是颜色使用类,因此您可以在CSS中更改它

<td<?php if($row['complete']) echo ' class="complete"'; ?>>data</td>

答案 1 :(得分:1)

<table>
    <tr>
        <td>column heading</td>
    </tr>
    <?php
    $qry=mysql_query("select * from table");
    while($row=mysql_fetch_array($qry)) {
        if($row['urcolumnn']==1)
        {
        echo "<tr bgcolor=green>";
        }
        else
        {
            echo "<tr>";
        }
        ?>

        <td>
            <?php echo $row['urcolumn']; ?>
        </td>
    </tr>
    <?php } ?>
</table>

这是一个示例代码。认为这会对你有所帮助。在这里我将背景颜色设为<tr>,如果您想为<td>提供颜色,请使用此<td style="background-color:green;">

答案 2 :(得分:0)

首先应更改列值,将其结构更改为int,并将默认值设置为“0”。所以当任务完成时,字段值应更改为“1”。

现在来到你的代码:

$qry = mysql_query("select * from table");
while($row = mysql_fetch_assoc($qry)){
    if($row['status']==1){
     echo "<td color="green">Data</td>"
    }
    else{
       echo "<td color="white">Data</td>";
    } 
 }

因此,你可以获得绿色的行,状态为== 1表示完整,白色表示不完整。

答案 3 :(得分:0)

我建议您使用三元运算符,而不是使用IF语句,或者您可以使用其他解决方法来使用数组来定义颜色,这将有助于您为全局定义每个状态值的各种颜色,请在下面找到示例:

$aryColor = array(
 'complete' => 'green',
 'incomplete' => "red",
 'pending' => 'orange'
 .....
);
//you can specify values for all of your status, or leave them blank for no color, the keys in the array are the possible values from your status field
foreach($recs as $rec) {
 echo '<tr bgcolor="'.$aryColor[$rec['status_field']].'">
 <td>'.$rec['title_field'].'</td>
 </tr>';
}

我希望这可以帮助你,你可以轻松地为HEREDOC编辑。