Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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 跟踪用户在“a”中排名超过X位的次数;“每周高分”;数据库_Php_Mysql_Database - Fatal编程技术网

Php 跟踪用户在“a”中排名超过X位的次数;“每周高分”;数据库

Php 跟踪用户在“a”中排名超过X位的次数;“每周高分”;数据库,php,mysql,database,Php,Mysql,Database,我的应用程序有另一个表的视图,该表显示上一日历周所有记录的高分列表。每周,我都会在列表前X位的每个用户的行中增加一个值,以表明他们在过去的几周内一直处于前X位。由于我只使用了一个日期过滤器,而且每周都没有服务器端的“事件”触发,所以我不确定每周注册此信息的最有效方法 我可以想到的一种方法是,每次用户登录时,只需运行某种“检查”,每个日历周第一个登录的用户就要承担告诉服务器增加上周前X个用户的负担。虽然这对我来说似乎有点愚蠢,但我很乐意在互联网上获得足够的认可 我所使用的主要语言是MySQL和PH

我的应用程序有另一个表的
视图
,该表显示上一日历周所有记录的高分列表。每周,我都会在列表前X位的每个用户的行中增加一个值,以表明他们在过去的几周内一直处于前X位。由于我只使用了一个日期过滤器,而且每周都没有服务器端的“事件”触发,所以我不确定每周注册此信息的最有效方法

我可以想到的一种方法是,每次用户登录时,只需运行某种“检查”,每个日历周第一个登录的用户就要承担告诉服务器增加上周前X个用户的负担。虽然这对我来说似乎有点愚蠢,但我很乐意在互联网上获得足够的认可


我所使用的主要语言是MySQL和PHP,以防相关。

你应该考虑运行一个CRON作业。您可以在用户每次登录时运行检查,但这并不理想,尤其是当您的系统要扩大时。

您可以编写一个更新脚本,1)检查上次运行的时间,如果是本周,则中止。2) 更新上次运行时间戳。3) 处理前一周的问题。现在,您可以使用您的操作系统来计划此脚本(可以使用php运行它,也可以使用wget来“下载”页面)。例如,在linux上,您通常会在windows上使用cron和任务调度器。这比使用第一个用户要好得多,因为这会导致竞态条件,在竞态条件下很难确保处理不能两次(并行)运行。

Wow,我从来没有想到仅仅在操作系统级别自动执行脚本。谢谢你的回复。