0

我正在尝试使用if-statement 来更改<td>-s 颜色。

基本上,我有一个简单的查询来从数据库中检索信息。另外,我在那里有一列,其中保留了任务是否完成等信息。当我检索信息时,我得到了所有信息,但我需要完成的任务是绿色的,而其他的则没有任何颜色。

我一直在寻找答案,但我找不到任何让我满意的东西。

例如:


$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

4 回答 4

5

而不是颜色使用一个类,所以你可以在 CSS 中改变它

<td<?php if($row['complete']) echo ' class="complete"'; ?>>data</td>
于 2012-08-16T10:42:05.427 回答
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;">

于 2012-08-16T10:51:34.443 回答
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 的绿色行表示完成,白色表示未完成。

于 2012-08-16T11:06:58.347 回答
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 编辑它。

于 2012-08-16T11:37:49.777 回答