根据 sql 表编号更改单元格的背景颜色


Change background color of cell based on sql table number

堆栈

上的第一个问题,对 php 来说也是非常新的,你可能从下面的代码中可以看出。我试图做的是将数据库中的信息填充到页面上。它以表格格式显示,用户可以通过一个或多个筛选器搜索特定记录。id喜欢做的是让"年龄"过滤器根据年龄显示具有不同颜色背景的记录。它将适用于一个人,因为它将显示所有年龄小于 22 岁的用户,背景为橙色。id 喜欢它做什么(我认为这是我只是还不理解语法的部分)是显示所有年龄小于 19 的记录,红色背景和所有年龄小于 22 的记录橙色背景。

我在下面的代码中想说的是,如果"age"的行记录小于 22,则给表行一个 ffab0a 的背景色,如果它小于 19,给表行一个背景色 ffff99,其他任何东西,没有背景颜色。

谁能帮我指出正确的方向? 下面是控制此

部分谢谢!
if ($row["age"]<22)
   echo '<tr style="background-color:#ffab0a">';
else if ($row["age"]<19)
   echo '<tr style="background-color:#ffff99">';
else
   echo '<tr>'; ?> 
<td><?php echo $row["age"]; ?></td>
<td><?php echo $row["location"]; ?></td>
<td><?php echo $row["form"]; ?></td>

你的问题是,你以错误的顺序工作。您必须先检查此人是否未满 19 岁,然后检查他/她是否未满 22 岁。否则,18岁的人也会被涂成橙色,因为18岁当然比22岁小。

<?
if ($row["age"]<19)
   echo '<tr style="background-color:#ffff99">';
else if ($row["age"]<22)
   echo '<tr style="background-color:#ffab0a">';
else
   echo '<tr>'; 
?> 
<td><?php echo $row["age"]; ?></td>
<td><?php echo $row["location"]; ?></td>
<td><?php echo $row["form"]; ?></td>

创建一个将年龄转换为颜色的函数。

<?php
    function age_style($age) {
        if ($age < 19) return 'background-color:#ffff99';
        if ($age < 22) return 'background-color:#ffab0a';
        return '';
    }
?>

然后,您的表呈现可以更干净一些:

<tr style="<?=age_style($row['age'])?>">
    <td><?= $row["age"]; ?></td>
    <td><?= $row["location"]; ?></td>
    <td><?= $row["form"]; ?></td>
</tr>

是不是更好看?它为您提供了一个位置,可以在将来需要时轻松更新样式。

我会稍微不同...

<?php
if ($row['age'] < 22) { $style = 'background-color: #ffab0a'; }
if ($row['age'] < 19) { $style = 'background-color: #ffff99'; }
?>
<tr style="<?php echo $style; ?>">
<td><?php echo $row['age']; ?></td>
<td><?php echo $row['location']; ?></td>
<td><?php echo $row['form']; ?></td?
</tr>

这样,如果您发现将来需要对标记进行更改,或者想要添加不同的条件,则无需修改一堆<tr>标签。