如果返回0行,MySQL返回结果

时间:2011-02-18 17:55:08

标签: php mysql

我有这个PHP代码:

$query = "SELECT name, COUNT(message) FROM guestbook_message WHERE name='".$req_user_info['username']."' GROUP BY name"; 

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result))
{
    echo "Messages posted: ". $row['COUNT(message)'] ."";
    echo "<br />";
}

这将显示用户发布的评论数量。

如果该用户没有发布消息,如何让它返回值?目前显示什么都没有。但我想让它显示“消息发布:0”

有什么想法吗?

3 个答案:

答案 0 :(得分:9)

使用mysql_num_rows检查结果中返回的结果数。

$query = "SELECT name, COUNT(message) FROM guestbook_message WHERE name='".$req_user_info['username']."' GROUP BY name"; 

$result = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($result) > 0)
    while($row = mysql_fetch_array($result))
    {
       echo "Messages posted: ". $row['COUNT(message)'] ."";
       echo "<br />";
    }
else
    echo "NO Messages posted. <br />";

答案 1 :(得分:1)

if ($row = mysql_fetch_array($result)) {
    echo "Messages posted: ". $row['COUNT(message)'] . "";
    echo "<br />";
}
else {
    echo "Messages posted: 0";
    echo "<br />";
}

答案 2 :(得分:0)

$row['COUNT(message)']替换为tertiary operator

( $row['COUNT(message)'] > 0 ? $row['COUNT(message)'] : 0 )

这基本上是一个压缩的if... else...声明。