我正在尝试在我的用户个人资料上创建在线/离线栏。它似乎无法100%工作,因为它总是在线显示。我正在使用以下脚本:
<?php
$user = $req_user_info['username'];
$sql = $db->query("SELECT COUNT(*) FROM blog_active_users
WHERE `username` = {$user}");
$num_rows = $sql->rowCount();
if (!$sql || ($num_rows < 0)) {
echo '<div class="span2 alert alert-error"><h4>offline</h4></div>';
} else if ($num_rows > 0) {
echo '<div class="span2 alert alert-success"><h4>online </h4></div>';
}
?>
我已经尝试使用num_rows > 0
和== 0
的脚本,但似乎没有任何效果。
我还试图在另一方面num_row > 0
然后num_row < 0
进行此操作,但这不起作用。
也适用于以下人士的答案。这是我的答案脚本:
<?php
$user = $req_user_info['username'];
$sql = $db->query("SELECT * FROM blog_active_users WHERE `username` = '".$req_user_info['username']."'");
$num_rows = $sql->rowCount();
if(!$sql || ($num_rows == 0)){
echo '<div class="span2 alert alert-error"><h4>offline</h4></div>';
}else{
echo '<div class="span2 alert alert-success"><h4>online </h4></div>';
}
?>
答案 0 :(得分:0)
您正在选择COUNT(*)
,因此您的请求将始终产生1个答案:行数本身。
您可以在COUNT上设置别名并使用它......
$sql = $db->query("SELECT COUNT(*) AS my_count FROM blog_active_users WHERE `username` = {$user}");
$num_rows = $sql->fetch(PDO::FETCH_OBJ)->my_count;
...或选择所有内容:
$sql = $db->query("SELECT * FROM blog_active_users WHERE `username` = {$user}");
$num_rows = $sql->rowCount();