我正在研究一个程序,查询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语句不适用于所有行。我不知道该怎么做。
if($color_test = "In")
应该if($color_test == "In")
现在,您正在将"In"字符串分配给变量$color_test
,但您应该检查==
操作符是否相等。
如果在if语句中进行比较,则需要使用==
while
block应该是这样的
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>";
}
}
一些更正:
你正在使用mysqli_fetch_array()当你试图获得一行-使用mysqli_fetch_assoc()代替。
while($row = mysqli_fetch_assoc($result)) {
在if谓词中,您只使用一个用于赋值的=,请使用==代替。
if( $color_test == "In" )
if( $color_test == "Out" )
还有一点注释,您已经分配了一个名为$color_test的变量,如果您在打印时使用这个变量而不是在打印时使用$row[]会更好。
我想就这些