繁体   English   中英

php while循环-mysql查询的每一行的if语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM