-4

ユーザー プロファイルにオンライン/オフライン バーを作成しようとしています。常にオンラインで表示されているため、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私はすでにandでスクリプトを試しましたが、何も機能して== 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>';
}
?>      
4

1 に答える 1

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();
于 2013-07-14T18:00:28.920 に答える