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

如何在php中根据单元格值更改单元格表颜色?,php,html,css,Php,Html,Css,我刚开始用php编程 我制作了一个返回值的表​​从数据库中。 我尝试做以下操作:根据第三列的值更改其颜色 我是这样想的,但是价值观​​重复使用,颜色不正确 有人能帮我吗 你明白我的问题了吗 谢谢大家。给您带来不便,我深表歉意 代码: 任务 截止日期 地位 代码的结果: 解决 谢谢大家的帮助。 状态是记录在数据库中的预定义值。范围仅在1到4之间,因此分辨率适用于@Daniel Andre。 所有的回答对我来说都是有效的,我试着理解一点php,但它太简单了。 再次感谢你们的时间和帮助 最终结果

我刚开始用php编程

我制作了一个返回值的表​​从数据库中。 我尝试做以下操作:根据第三列的值更改其颜色

我是这样想的,但是价值观​​重复使用,颜色不正确

有人能帮我吗

你明白我的问题了吗

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

代码:


任务
截止日期
地位
代码的结果:

解决

谢谢大家的帮助。 状态是记录在数据库中的预定义值。范围仅在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>

塔雷法
普拉佐
地位

如果状态是静态的(也就是说,它们不会改变,而是一组固定的状态),则可以创建一个php数组,将状态映射到颜色:

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

如果您看到,列计数中有一个错误。试着这样做:

<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>

任务
截止日期
地位

如果我答对了,您将显示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,绿色id为0F0,黄色id为FF0。这些值与提供的代码中的注释不匹配

任务
截止日期
地位

您能告诉我最后一列的依赖性是什么吗?什么是依赖性?很抱歉,我没有意识到你的问题。你能解释一下你想问什么吗?我想知道关于单元格的情况,你提到你想用php动态地改变单元格的颜色?哦,对不起。是的,我只想使用php动态更改第三个单元格的颜色。如果该值等于2,则该单元格已变为红色…等等。使用last Cells尝试此代码感谢您的回复,但SATU不是静态的,它们可以更改。如果
status
值大于3,这将不起作用,您将得到一个错误更新,以包括示例中所有可见的状态,我认为这显然是启动OP的示例@rpirez,尽管它们会更改,但状态的值只能是预定义状态列表中的一个?如果它们确实是非静态的(它们可以是从“1”到“Bob”的任意值),或者它们的范围很广(从“1”到“20”的任意值),那么当然,我的答案不适用。
<? 
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>';
?>
<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>