Count(id)mysql - 如果没有结果则显示0?

时间:2015-09-18 12:17:22

标签: php mysql

如果用户有新的聊天消息,我想计算(id)。

我的问题是如果没有消息它不会给我0结果。 有什么问题?

$stmt = $mysqli->prepare("SELECT count(id) FROM chat WHERE `to`=? and recd='0' group by `from`");
$stmt->bind_param('s', $user);
$stmt->execute();
$stmt->bind_result($chatcont);
$stmt->fetch();
$stmt->close();

PHP:

echo "($chatcont)";

如果我没有留言:

()

我想在此内显示0。

3 个答案:

答案 0 :(得分:2)

使用$stmt->num_rows返回结果中的行数。 如果为0,则为echo 0其他echo $chatcont

答案 1 :(得分:0)

然而,您不需要在PDO语句中使用bind_result。请避免不必要的行动。 只需获取您的数据并在任何地方使用它。

OnBeforeNavigate2

在这里,您将获得计数或0

答案 2 :(得分:0)

这是一个错误的问题,它会让人们写错了答案。

正确使用SQL count()始终返回一个数字。

它的SQL错了。虽然接受的答案本质上是错误的,但永远不应该使用,因为它has been answered here thousands times already,都是徒劳的。

SELECT count(id) FROM chat WHERE `to`=? and recd='0'

是获得未读邮件数量的正确答案。

要获取发件人数另一个问题。这也可以用SQL来回答。如果曾被问过

SELECT count(distinct `from`) FROM chat WHERE `to`=? and recd='0'