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

时间:2013-09-08 23:33:02

标签: php html mysql

这里的第一个问题是堆栈,对于php也是非常新的,你可以从下面的代码中看出来。我想要做的是将数据库中的信息填充到页面上。它以表格形式显示,用户可以通过一个或多个过滤器搜索特定记录。我喜欢做的是让'age'过滤器根据年龄显示具有不同颜色背景的记录。它将适用于一个,因为它将显示所有年龄小于22并具有橙色背景的用户。喜欢它做什么(我认为这是我不理解语法的部分)是显示所有年龄小于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>

3 个答案:

答案 0 :(得分:1)

你的问题是,你的工作顺序错误。你必须首先检查一下,如果这个人不满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>

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

我会稍微接近它......

<?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>标记。