如果用户有新的聊天消息,我想计算(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。
答案 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'