我正在研究一个查询mysql数据库并在html表中显示结果的程序。我希望基于其中一个字段值进行条件格式化。如果查询返回单词“In”,我希望表格单元格背景颜色为绿色;如果出现“Out”字样,则为红色。我已经到了为单元格着色的地步,但它似乎是使用第一行的单词的颜色作为第一行和所有后续行。例如,假设第一行的单词是“In”,那么该单元格将为绿色,以及其下方的所有单元格,即使其他单元格具有单词“Out”。以下是代码的相关部分:
...
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['Employee'] . "</td>";
$color_test = $row['Status'];
if ($color_test = "In") {
echo "<td bgcolor=#00FF00>" . $row['Status'] . "</td>";
}
elseif ($color_test = "Out") {
echo "<td bgcolor=#FF0000>" . $row['Status'] . "</td>";
}
else {}
echo "<td>" . $row['Return'] . "</td>";
...
我唯一能想到的是if语句没有应用于所有行。我不确定如何做到这一点。我没有用PHP编写太多程序。
答案 0 :(得分:5)
if($color_test = "In")
应该是
if($color_test == "In")
现在,您将“In”字符串分配给变量$color_test
,但您应该检查与==
运算符的相等性。
答案 1 :(得分:2)
如果要在if语句中进行比较,则需要使用==
答案 2 :(得分:0)
while
块应该是这样的。
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['Employee'] . "</td>";
$color_test = $row['Status'];
if ($color_test == "In") {
echo "<td bgcolor=#00FF00>" . $row['Status'] . "</td>";
}
elseif ($color_test == "Out") {
echo "<td bgcolor=#FF0000>" . $row['Status'] . "</td>";
}
else {
echo "<td>" . $row['Return'] . "</td>";
}
}
答案 3 :(得分:0)
一些更正:
当您尝试获取行时,您正在使用mysqli_fetch_array() - 请改用mysqli_fetch_assoc()。
while($row = mysqli_fetch_assoc($result)) {
在if谓词中,你只使用一个=,用于赋值,使用==代替。
if( $color_test == "In" )
if( $color_test == "Out" )
只是一个小评论,你已经分配了一个名为$ color_test的变量,如果你在打印时使用这个变量而不是在打印时使用$ row []会更好。
我认为的全部