PHP获取所有用户数据并检查每个用户的lastonline

PHP获取所有用户数据并检查每个用户的lastonline,php,mysql,Php,Mysql,我想让每个用户获得最后一次在线时间,然后检查现在减去他们最后一次在线时间的时间是否小于他们上次登录后的600秒 我已经编写了一些代码,这些代码可以工作,但不是我想要它做的。 我想让它得到每个用户的信息。出于某种原因,这段代码会根据1个用户更新每个用户的信息。当我将代码中的小于号更改为大于号时,它们都会随之更改,即使我的用户上次联机时间是1分钟前 我的代码: <?php $user_grab = mysqli_query($con, "SELECT * FROM users");

我想让每个用户获得最后一次在线时间,然后检查现在减去他们最后一次在线时间的时间是否小于他们上次登录后的600秒

我已经编写了一些代码,这些代码可以工作,但不是我想要它做的。 我想让它得到每个用户的信息。出于某种原因,这段代码会根据1个用户更新每个用户的信息。当我将代码中的小于号更改为大于号时,它们都会随之更改,即使我的用户上次联机时间是1分钟前

我的代码:

<?php
    $user_grab = mysqli_query($con, "SELECT * FROM users");
    while($users_ = mysqli_fetch_array($user_grab)) {

        foreach($users as $user) {
            $last_online = $users_['lastonline'];

            if(time() - $last_online < user_session_timeout()) {
                echo '
                     <div class="chat-list-item -available" style="background: rgba(255,255,255,0.1);">
                        <img class="chat-list-avatar" src="'.$users_['profile_picture'].'"/><i class="fa fa-circle chat-list-status"> </i>
                        <div class="chat-list-user">'.$users_['username'].'</div>
                        <div class="chat-list-excerpt">Online</div>
                     </div>
                ';
            } else {
                echo '
                     <div class="chat-list-item -offline" style="background: rgba(255,255,255,0.1); padding: 5px;">
                        <img class="chat-list-avatar" src="'.$users_['profile_picture'].'"/><i class="fa fa-circle chat-list-status"> </i>
                        <div class="chat-list-user">'.$users_['username'].'</div>
                        <div class="chat-list-excerpt">Offline</div>
                     </div>
                ';
            }   
        }
    }
?>
我的用户全部脱机显示的图片

证明每个用户上次在线时间不同的证据

$users.[“lastonline”]
是一个包含日期和时间的字符串。您需要将其解析为数字时间戳,以便从
time()
中减去它

$users.[“lastonline”]
是一个包含日期和时间的字符串。您需要将其解析为数字时间戳,以便从
time()
中减去它


user\u session\u timeout()。它有什么作用?@colburton我刚刚更新了我的问题。它从我的数据库中读取600秒作为一个整数。你的
foreach
循环从不使用
$user
做任何事情。你为什么在那里兜圈子?@Barmar是的,我不太确定。我把它拿了出来,但仍然是一样的。
user\u session\u timeout()
至少听起来它与当前用户有关。它有什么作用?@colburton我刚刚更新了我的问题。它从我的数据库中读取600秒作为一个整数。你的
foreach
循环从不使用
$user
做任何事情。你为什么在那里兜圈子?@Barmar是的,我不太确定。我把它拿出来,还是一样的东西。
function user_session_timeout() {
global $con;
    $grab_user_timeout_sql = mysqli_query($con, "SELECT user_session_timeout FROM sitesettings");
    $row = mysqli_fetch_array($grab_user_timeout_sql);
    return $row['user_session_timeout'];
}
$last_online = strtotime($users_['lastonline']);