mysql消息系统的在线脱机状态-PHP MySQL

时间:2017-10-22 20:24:49

标签: php mysql

我到处寻找,似乎无法找到解决问题的答案。 我有一个在线消息系统,我想为用户实现在线和离线状态。但无论我用这个代码做什么......我似乎无法让它运作起来。任何帮助将不胜感激。请注意,除了与$onlineq2变量有关的代码之外,我不想更改任何现有代码。

我的代码是:

<?php
                //show all the users expect me
                $q = mysqli_query($con, "SELECT * FROM `users` WHERE id!='$user_id'");
                $q2 = mysqli_query($con, "SELECT status FROM `users`");
                //display all the results
                while($row = mysqli_fetch_assoc($q2)){
                $online = $row['status'];
                if($online == "online"){
                    $tcolor = "green";
                }
                elseif($online=="offline"){
                    $tcolor = "red";
                }
                elseif($online ==""){
                    $tcolor= "gray";
                }
                }
                while($row = mysqli_fetch_assoc($q)){
                echo "<a href='/users/pm?id={$row['id']}'><li style='border-left:{$tcolor} 15px solid;'><img src='{$row['pic']}'> {$row['name']}</li></a>";
                }
            ?>

1 个答案:

答案 0 :(得分:0)

您设置$online的逻辑相反。它应该是:$online = $row['status'];

以下编辑:

您原来的$q2是不必要的,因为它只是检索状态列,并且没有任何内容链接到用户。此外,您还可以在$q中获得所需的所有数据。

<?php
    //show all the users expect me
    $q = mysqli_query($con, "SELECT * FROM `users` WHERE id!='$user_id'");
    //display all the results
    while($row = mysqli_fetch_assoc($q)){
        $online = $row['status'];
        if($online == "online"){
            $tcolor = "green";
        }
        elseif($online=="offline"){
            $tcolor = "red";
        }
        elseif($online ==""){
            $tcolor= "gray";
        }
        echo "<a href='/users/pm?id={$row['id']}'><li style='border-left:{$tcolor} 15px solid;'><img src='{$row['pic']}'> {$row['name']}</li></a>";
    }
?>