php - WHILE 中的 IF 语句不起作用

标签 php mysql sql database

我正在开发一个基本的消息传递系统。这是为了获取所有消息并使表中有未读消息的行变为绿色。在表中,有一列名为“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){

类似的问题还有很多

关于php - WHILE 中的 IF 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614095/

相关文章:

java - 更改日期格式并将其存储在 mysql 中的变量中

sql - 将 sql_variant 转换为以 varchar 形式提供的 data_type

php - 使用 Emacs 和 GEBEN 调试多文件 PHP 脚本

php - undefined variable 实际上被定义了吗?

python - 运行 python 脚本在 Amazon RDS 数据库实例上创建我的架构

php - 无法添加或更新子行

mysql - 有没有办法从每组行中获取 2 行?

php - 检查数据库中是否存在用户名和电子邮件

php - 如何在Docker容器中为Laravel运行和安装Protractor E2E测试?

mysql求和多个连接