基于mysql检索的值动态着色

时间:2014-03-28 14:59:33

标签: php

我需要根据mysql检索的值生成一个动态着色<td>的简单表。

这就是我需要的:

$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
echo "<td></td>";
}
echo "</tr></table>";

以上代码绘制的表格中<td>等于$target等于<td>。然后,我只需要使用变量$achieved内的值为这些<td>的背景着色。所以在这种情况下,我想要13个彩色{{1}}&#39>。

4 个答案:

答案 0 :(得分:2)

也许您可以尝试这一点,并在您的CSS上添加td.coloured

$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
    if ($i < $achieved) {
        echo "<td class=\"coloured\"></td>";
    }
    else {
        echo "<td></td>";
    }
}
echo "</tr></table>";

答案 1 :(得分:1)

您应该可以在此处使用标准if语句,类似于:

if ($i < $achieved) // do the color

在循环中,您可以填充$bgcolor变量,然后将其附加到您输出的<td>中:

for($i = 0; $i <= $target; $i++){
    $bgcolor = '';
    if ($i < $achieved) {
        // give it a red background color
        $bgcolor = ' bgcolor="#ff0000"';
    }

    echo "<td" . $bgcolor . "></td>";
}

如果您想要更高级的样式,我建议使用CSS而不是bgcolor属性。可以采用与上述相同的方法:

for($i = 0; $i <= $target; $i++){
    $style = '';
    if ($i < $achieved) {
        // give it a red background color
        $style = ' style="td-acheived"';
    }

    echo "<td" . $style . "></td>";
}

然后你可以拥有这种风格:

<style>
    .td-acheived {
        background-color: #ff0000;
    }
</style>

答案 2 :(得分:0)

我会通过将它与css结合使用以及对你的php进行以下更改来实现这一点

$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
echo "<td class='bgcolor-".$achieved."'></td>";
}
echo "</tr></table>";

然后在你的css文件中

.bgcolor-13{
    background-color:blue;
}

答案 3 :(得分:0)

我不确定我是否理解,但我会尝试。

$target = 20;
$achieved = 13;
echo "<table border='1'><tr>";
for($i = 0; $i <= $target; $i++){
if($i<=$archieved){
echo "<td bgcolor='red'></td>";
}else{
echo "<td></td>";
}
}
echo "</tr></table>";