Это частичный код.
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'];
}
}
Это результат, когда он работает. Он просто показывает моего онлайн-пользователя, в то время как я хочу иметь возможность одновременно отображать как онлайн, так и оффлайн пользователей.
Что-то не так я сделал?