这是我脚本中的部分代码。我试图使背景根据值改变颜色,并且无法正确读取数组。在打印时将条件放置在while之外或while内将返回相同的结果。
如果值为100,则颜色应为红色如果该值大于49,则颜色为黄色如果值为0到49,则颜色为绿色
如果有人会发现SQL读取请求数据时BILLED_TO_DATE_PERCENTAGE会根据数字范围而变化,将不胜感激。
$counter = 1;
while($row = mysqli_fetch_array($result))
{
if($BILLED_TO_DATE_PERCENTAGE = 100)
{
$tdStyle='background-color:red;';
}
else
{
if($BILLED_TO_DATE_PERCENTAGE > 79)
{
$tdStyle='background-color:yellow;';
}
else
{
$tdStyle='background-color:green;';
}
}
echo "<tr>";
echo "<td bgcolor=#001F25>" . "<b>" . "<font color=WHITE>" . $counter . "</font>" . "</b>" . "</td>";
echo "<td bgcolor=#00353F>" . "<b>" . "<font color=WHITE>" . $row['NUMBER'] . "</font>" . "</td>";
echo "<td bgcolor=#00353F>" . "<b>" . "<font color=WHITE>" . $row['PROJECT'] . "</font>" . "</td>";
echo "<td style=\"$tdStyle\">" . "<b>" . "<i>" . $row['BILLED_TO_DATE_PERCENTAGE'] . "</i>" . "</b>" . "</td>";
echo "</tr>";
$counter++; //increment counter by 1 on every pass
}
echo "</table>";
最好创建一个函数来使代码更有条理,并谨慎使用“ =”,在您的代码中,拳头条件只使用了一个“ =”,相比之下,您需要使用“ = =“:
function Changecolor($percentage){
if ($percentage == 100) {
return 'background-color:red;';
} else {
if ($percentage > 49) {
return 'background-color:yellow;';
} else {
return 'background-color:green;';
}
}
}
echo "<table>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td bgcolor=#001F25>" . "<b>" . "<font color=WHITE>" . $counter . "</font>" . "</b>" . "</td>";
echo "<td bgcolor=#00353F>" . "<b>" . "<font color=WHITE>" . $row['NUMBER'] . "</font>" . "</td>";
echo "<td bgcolor=#00353F>" . "<b>" . "<font color=WHITE>" . $row['PROJECT'] . "</font>" . "</td>";
echo "<td style=".Changecolor($row['BILLED_TO_DATE_PERCENTAGE']).">" . "<b>" . "<i>" . $row['BILLED_TO_DATE_PERCENTAGE'] . "</i>" . "</b>" . "</td>";
echo "</tr>";
$counter++; //increment counter by 1 on every pass
}
echo "</table>";
很有可能数据库中的列不是全部大写。从数据库中检索该值后,您也不会从该行中检索该值。
$counter = 1;
while($row = mysqli_fetch_array($result)) {
$percentage = $row['BILLED_TO_DATE_PERCENTAGE'];
if($percentage == 100) {
$tdStyle='background-color:red;';
} elseif ($percentage > 49) {
$tdStyle='background-color:yellow;';
} else {
$tdStyle='background-color:green;';
}
echo "<tr>";
echo "<td bgcolor=#001F25>" . "<b>" . "<font color=WHITE>" . $counter . "</font>" . "</b>" . "</td>";
echo "<td bgcolor=#00353F>" . "<b>" . "<font color=WHITE>" . $row['NUMBER'] . "</font>" . "</td>";
echo "<td bgcolor=#00353F>" . "<b>" . "<font color=WHITE>" . $row['PROJECT'] . "</font>" . "</td>";
echo "<td style=\"$tdStyle\">" . "<b>" . "<i>" . $row['BILLED_TO_DATE_PERCENTAGE'] . "</i>" . "</b>" . "</td>";
echo "</tr>";
$counter++; //increment counter by 1 on every pass
}
echo "</table>";