簡體   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