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