簡體   English   中英

WHILE中的IF語句不起作用

[英]IF statement within WHILE not working

我正在開發一個基本的郵件系統。 這是為了獲取所有消息並使表中未讀消息的行變為綠色。 表格中有一列叫做“ msgread”。 默認情況下將其設置為“ 0”。 因此,它應該使任何一行的msgread = 0->綠色。 這僅適用於具有代碼的表的第一行-我已驗證它始終獲得0值,但是它僅在while語句中才有效。

require('./connect.php');

$getmessages = "SELECT * FROM messages WHERE toperson = '" . $userid . "'";

echo $getmessages;

$messages = mysql_query($getmessages);

if(mysql_num_rows($messages) != 0) {

    $table = "<table><tr><th>From</th><th>Subject</th><th>Message</th></tr>";

    while($results = mysql_fetch_array($messages)) {

        if(strlen($results[message]) < 30){
            $message = $results[message];
        }
        else {
            $message = substr($results[message], 0 ,30) . "...";
        }

        if($results[msgread] == 0){

            $table .= "<tr style='background:#9CFFB6'>";
            $table .= "<td>" . $results[from] . "</td><td>" . $results[subject] . "</td><td><a href='viewmessage.php?id=" . $results[message_id] ."'>" . $message . "</a></td></tr>";
        }
        else {
            $table .= "<tr>";
            $table .= "<td>" . $results[from] . "</td><td>" . $results[subject] . "</td><td><a href='viewmessage.php?id=" . $results[message_id] ."'>" . $message . "</a></td></tr>";

        }
    }
    echo $table ."</table>";
}
else {
    echo "No Messages Found";   
}

這里有所有代碼,包括從數據庫中獲取信息。 謝謝。

if(strlen($results[message]) < 30){

該消息可能應該被引用:

if(strlen($results['message']) < 30){

還有很多其他類似的問題

我測試了您的代碼,發現的唯一錯誤是索引數組$ results中缺少定界標記。 當最合適的是$result['message_id']時,您正在使用此$result[message_id] $result['message_id'] 其余的按預期方式工作,msgread等於0的記錄保留在綠線中。

您的代碼看起來有些討厭,不容易閱讀。

  • 您應該使用mysqli_fetch_assoc()
  • 總是以結束風格;
  • 在關聯數組上使用引號
  • 變量名稱的更多邏輯選擇
  • $userid來自哪里? 內容安全嗎?

這是您的代碼的快速清除版本:

$query = "SELECT * FROM messages WHERE toperson = '" . $userid . "'";

if($results = mysqli_query($query)) {

    if(mysqli_num_rows($results) != 0) {

        $table = "<table><tr><th>From</th><th>Subject</th><th>Message</th></tr>";

        while($data = mysqli_fetch_assoc($results)) {

            if(strlen($data['message']) > 30){
                $data['message'] = substr($data['message'], 0 ,30) . "...";
            }

            $table .= "<tr";

            if($data['msgread'] == 0){
                $table .= " style='background:#9CFFB6;'";
            }

            $table .= ">";

            $table .= "<td>" . $data['from'] . "</td><td>" . $data['subject'] . "</td><td><a href='viewmessage.php?id=" . $data['message_id'] ."'>" . $data['message'] . "</a></td></tr>";

        }

        echo $table ."</table>";

    } else {

        echo "No Messages Found";   

    }  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM