Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
4年前关闭。
我可以很好地连接到数据库,但是不确定要使用
我有一个带有用户表的数据库。每个用户都有一个值,该值建议他们当前是否已登录系统。而且我在每行中都有一个用
我需要知道如何通过mysqli程序样式查询数据库,然后说,forech
这仅是一项功能,如果用户关闭浏览器并且不通过退出程序或注销而不能正确退出,则该功能将摆脱数据库中用户的在线状态。
预先感谢任何可以帮助我提供某种代码或使我处于正确轨道的人。我先尝试搜索,但是由于需要同时执行两个不同的操作,因此找不到所需的内容。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
4年前关闭。
我可以很好地连接到数据库,但是不确定要使用
$query
语法以及它是否应该是foreach或while循环...但是我正在尝试这样做:我有一个带有用户表的数据库。每个用户都有一个值,该值建议他们当前是否已登录系统。而且我在每行中都有一个用
$timestamp
更新的字段,该字段刷新用户活动,以使他们不会闲着……我需要知道如何通过mysqli程序样式查询数据库,然后说,forech
$person
(或表中的行)检查表列“ Online”是否设置为1或0,以及是否设置为1,那么我需要能够做一个数学方程,取$currentservertime
并从数据库中存储的$timestamp
中减去,看看它们是否闲置了10或15分钟以上。对于每个闲置时间超过该时间的人,我需要将他们在数据库中的“在线”状态从1更改为0(0表示他们不在线)。这仅是一项功能,如果用户关闭浏览器并且不通过退出程序或注销而不能正确退出,则该功能将摆脱数据库中用户的在线状态。
预先感谢任何可以帮助我提供某种代码或使我处于正确轨道的人。我先尝试搜索,但是由于需要同时执行两个不同的操作,因此找不到所需的内容。
最佳答案
您不必选择所有行并进行PHP筛选,因为如果用户表大约有1000万行,则操作将非常缓慢。
您可以不使用PHP设置离线用户。您的查询可能是:
$maxInactivity = 15; // in minutes
$timestampToGoOffline = time()-($maxInactivity*60);
$sql = "UPDATE users SET status = 0 WHERE last_action_timestamp < $timestampToGoOffline";