![](/img/trans.png)
[英]PHP statement: while($row = mysql_fetch_array($query))
[英]php while loop - if statement for each row of mysql query
我正在研究一个查询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中编程太多。
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 []会更好。
这就是我想的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.