У меня проблемы с отображением офлайн пользователей. Я не уверен, почему мое заявление if не работает. Что-то не так с моим утверждением if? - PullRequest
0 голосов
/ 07 марта 2020

Это частичный код.

if($_POST["action"] == "fetch_data"){
        $output = '';
        $query = " SELECT login.user_id, login.username FROM login_details INNER JOIN login ON login.user_id = login_details.user_id WHERE last_status > DATE_SUB(NOW(), INTERVAL 5 SECOND)";
        $statement = $conn -> prepare($query);
        $statement -> execute();
        $result = $statement -> fetchAll();
        $count = $statement -> rowCount();
        $output .='<div class="table-responsive">
                                    <div align="right">
                                        '.$count.' Users
                                    </div>
                                    <table class="table table-bordered table-hover table-dark">
                                        <tr>
                                            <th width="50%">Username</td>
                                            <th width="10%">Status</td>
                                            <th width="10%">Action</td>
                                        </tr>';


   foreach($result as $row){
         $status = '';
         $current_timestamp = strtotime(date('Y-m-d- H:i:s') . '- 10 second');
         $current_timestamp = date('Y-m-d H:i:s', $current_timestamp);
         $user_last_activity = get_user_last_activity($row['user_id'], $conn);
         if($user_last_activity > $current_timestamp) {
            $status = '<span class="label label-success">Online</span>';
         } else {
             $status = '<span class="label label-danger">Offline</span>';
         }
         $output .= '<tr> <td>'.$row['username'].' '.count_unseen_message($row['user_id'], $_SESSION['user_id'], $conn).' '.fetch_is_type_status($row['user_id'], $conn).'</td><td>'.$status.'</td><td><button type="button" class="btn btn-info btn-xs start_chat" data-touserid="'.$row['user_id'].'" data-tousername="'.$row['username'].'">Start Chat</button></td></tr>';
    }

          $output .= '</table></div>';
          echo $output;
         }

    function get_user_last_activity($user_id, $conn) {
        $query = "SELECT * FROM login_details WHERE user_id = '$user_id' ORDER BY last_status DESC LIMIT 1";
        $statement = $conn -> prepare($query);
        $statement -> execute();
        $result = $statement -> fetchAll();
        foreach($result as $row) {
            return $row['last_status'];
        }
    }

Это результат, когда он работает. Он просто показывает моего онлайн-пользователя, в то время как я хочу иметь возможность одновременно отображать как онлайн, так и оффлайн пользователей.

Что-то не так я сделал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...