繁体   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