Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过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";

10-07 19:59
查看更多