如何根据单元格值更改php中的单元格表颜色?

时间:2014-09-09 07:52:32

标签: php html css

我刚开始用php编程。

我创建了一个从数据库中返回值的表。 我正在尝试执行以下操作:将第三列的颜色更改为它具有的值。

我这样想,但重复这些值,颜色不正确。

有人能帮帮我吗?

你明白我的问题吗?

谢谢大家。对于给您带来的不便,我深表歉意。

代码:

<table style="width:324px;" border="3" cellspacing="1" cellpadding="1">
    <tr>
        <td style="background-color:#A4A4A4;">
            <b><font face="Arial, Helvetica, sans-serif">Task</font></b>
        </td>
        <td style="background-color:#A4A4A4;">
            <b><font face="Arial, Helvetica, sans-serif">deadline</font></b>
        </td>
        <td style="background-color:#A4A4A4;">
            <b><font face="Arial, Helvetica, sans-serif">Status</font></b>
        </td>
    </tr>
<?php
$i=0;
while ($i < $num)
{
    $f1=mysql_result($result,$i,"Task");
    $f2=mysql_result($result,$i,"deadline");
    $f3=mysql_result($result,$i,"status");

    ?>
    <tr style="background-color:#A4A4A4;">
        <td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
        <td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
        <td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
        <? 
        if($f3==2)
        { 
            // Display RED 
            ?> 
            <td style="background-color:#FF0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
            <? 
        }
        elseif($f3==1)
        { 
            // Display YELLOW 
            ?> 
            <td style="background-color:#0F0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
            <?     
        }
        else
        { 
            ?> 
            <td  style="background-color:#F00;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
            <? 
        } 
        ?> 
    </tr> 
    <?php
    $i++;
}
?>
</table>

代码结果:

enter image description here

解决

感谢大家的帮助。 状态是记录在数据库中的预定义值。只有1到4之间的范围,以便分辨率正确地为@Daniel Andre服务。 所有回复都对我有效,试图了解更多的PHP,但它是如此简单。 再次感谢大家的时间和帮助。

最终结果是:

<table style="width:324px;" border="3" cellspacing="1" cellpadding="1">
<tr>

<td style="background-color:#A4A4A4;">
<b><font face="Arial, Helvetica, sans-serif">Tarefa</font></b>
</td>
<td style="background-color:#A4A4A4;">
<b><font face="Arial, Helvetica, sans-serif">Prazo</font></b>
</td>
<td style="background-color:#A4A4A4;">
<b><font face="Arial, Helvetica, sans-serif">Status</font></b>
</td>
</tr>

<?php
$i=0;while ($i < $num) {
$f1=mysql_result($result,$i,"idTarefa");
$f2=mysql_result($result,$i,"PrazoExecucao");
$f3=mysql_result($result,$i,"status");

?>
<tr style="background-color:#A4A4A4;">
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
<!--<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>-->

<?php
  $status_colors = array(1 => '#0000FF', 2 => '#00FF00', 3 => '#FFFF00', 4 => '#FF0000');
?>
<td style="background-color: <?php echo $status_colors[$f3]; ?>;">
</tr> 


<?php
$i++;
}
?>
</table>

enter image description here

4 个答案:

答案 0 :(得分:2)

如果状态是静态的(意思是,它们不会改变,但是是一组固定的状态),你可以制作一个php数组,将状态映射到颜色:

<?php
  $status_colors = array(1 => '#FF0', 2 => '#F0F', 3 => '#0FF', 4 => '#0F0');

然后,在您的td中,使用正确的状态颜色:

<td style="background-color: <?php echo $status_colors[$f3]; ?>;">

答案 1 :(得分:2)

如果我说得对,你显示3列(黄色,绿色,红色),只显示一列。所以,您可以尝试更改这些行:

<? 
if($f3==2) { 
    // Display RED 
?> 
<td style="background-color:#FF0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<? 
} elseif($f3==1) { 
    // Display YELLOW 
?> 
<td style="background-color:#0F0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<?     
} else { 
?> 
<td  style="background-color:#F00;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<? 
} 
?> 

对于这些:

<? 
switch($f3) {
    case 2: $color="#F00"; break; // Display RED 
    case 1: $color="#FF0"; break; // Display YELLOW 
    default:  $color="#0F0"; break; // Display GREEN 
}
echo '<td style="background-color:'.$color.';"><font face="Arial, Helvetica, sans-serif">'.$f3.'</font></td>';
?>

补充说明:

  • 尝试切换到PDO / mysqli(您正在使用已弃用的函数)。
  • 请注意红色ID#F00,绿色#0F0,黄色#FF0。这些值与提供的代码中的注释不匹配。

答案 2 :(得分:2)

<table style="width:324px;" border="3" cellspacing="1" cellpadding="1">
<tr>

<td style="background-color:#A4A4A4;">
<b><font face="Arial, Helvetica, sans-serif">Task</font></b>
</td>
<td style="background-color:#A4A4A4;">
<b><font face="Arial, Helvetica, sans-serif">deadline</font></b>
</td>
<td style="background-color:#A4A4A4;">
<b><font face="Arial, Helvetica, sans-serif">Status</font></b>
</td>
</tr>

<?php
$i=0;while ($i < $num) {
$f1=mysql_result($result,$i,"Task");
$f2=mysql_result($result,$i,"deadline");
$f3=mysql_result($result,$i,"status");

?>
<tr style="background-color:#A4A4A4;">
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>


<? 
if($f3==2) { 
    // Display RED 
?> 
<td style="background-color:#FF0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<? 
} elseif($f3==1) { 
    // Display YELLOW 
?> 
<td style="background-color:#0F0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<?     
} ?> 

<?php if($f3==2){?>
<td  style="background-color:#F00;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<? }else { ?>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
<?php } ?> 
</tr> 


<?php
$i++;
}
?>
</table>

答案 3 :(得分:1)

如果你看到列计数有错误。试试这个:

<table style="width:324px;" border="3" cellspacing="1" cellpadding="1">
    <tr>
        <td style="background-color:#A4A4A4;">
            <b><font face="Arial, Helvetica, sans-serif">Task</font></b>
        </td>
        <td style="background-color:#A4A4A4;">
            <b><font face="Arial, Helvetica, sans-serif">deadline</font></b>
        </td>
        <td style="background-color:#A4A4A4;">
            <b><font face="Arial, Helvetica, sans-serif">Status</font></b>
        </td>
    </tr>
<?php
$i=0;
while ($i < $num) {
    $f1=mysql_result($result,$i,"Task");
    $f2=mysql_result($result,$i,"deadline");
    $f3=mysql_result($result,$i,"status");
?>
    <tr style="background-color:#A4A4A4;">
        <td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
        <td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
<? 
    if($f3==2) { 
        // Display RED 
?> 
        <td style="background-color:#FF0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<? 
    } elseif($f3==1) { 
        // Display YELLOW 
?> 
        <td style="background-color:#0F0;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<?     
    } else { 
?> 
        <td  style="background-color:#F00;"><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td> 
<? 
    } 
?> 
    </tr> 
<?php
    $i++;
}
?>
</table>