Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP获取活动用户列表?_Php_Mysql_Sql - Fatal编程技术网

如何使用PHP获取活动用户列表?

如何使用PHP获取活动用户列表?,php,mysql,sql,Php,Mysql,Sql,我目前维护一个用户的DB表,在登录后,我用他们的ID和登录时间更新该表。这在一定程度上是可行的,但目前我无法判断该用户自登录后是否处于活动状态,或者持续了多长时间 有没有更好的方法来获取在过去X分钟内一直处于活动状态的用户的完整列表?获取所需信息的最佳方法是用户表中的“最后一个活动”列。只要用户访问页面,您就可以更新它。根据您需要的信息,它可以替换“登录时间”列,也可以是一个新列。您必须以单独的表或列的形式跟踪用户在数据库中最后一次请求的时间。然后,您可以制定一个要选择的查询,例如,在过去5分钟

我目前维护一个用户的DB表,在登录后,我用他们的ID和登录时间更新该表。这在一定程度上是可行的,但目前我无法判断该用户自登录后是否处于活动状态,或者持续了多长时间


有没有更好的方法来获取在过去X分钟内一直处于活动状态的用户的完整列表?

获取所需信息的最佳方法是用户表中的“最后一个活动”列。只要用户访问页面,您就可以更新它。根据您需要的信息,它可以替换“登录时间”列,也可以是一个新列。

您必须以单独的表或列的形式跟踪用户在数据库中最后一次请求的时间。然后,您可以制定一个要选择的查询,例如,在过去5分钟内发出请求的所有用户


PHP本身并不存储或关心此类信息。除非您有自己的会话管理模块存储此类信息,否则您可以使用该模块中的数据。

您可以在表中添加一个“上次看到的”列,并在用户每次新建时刷新该列request@Pekka这需要另一个数据库调用,所以我不确定这是最好的解决方案。@Pekka웃: 如果用户已登录但未更改页面,该怎么办?对于大多数站点,发出DB请求应该是可以的。如果您有巨大的流量,您可能希望在某个时候切换到memcache,但是对于流量从低到中等的站点,数据库调用不应该导致任何性能问题。任何没有静态缓存的CMS驱动站点都会在每个站点上创建几十个静态缓存request@Paul,只能通过显式注销或超时来定义“访问”的结束。请看这里: