Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 - Fatal编程技术网

Php 高分(高分)排名计算和更新查询?

Php 高分(高分)排名计算和更新查询?,php,mysql,Php,Mysql,我有一个高分高分系统,它根据球员的经验计算位置。 但是现在我需要在其他地方使用玩家的排名,比如在网络上,也许更多的地方也像个人网站一样 高分,它将显示玩家在该技能中的排名 因此,像rank++那样循环&玩循环循环不会真正起作用,因为我需要保存该排名以备将来使用 其他地方 我所能做的就是遍历所有玩家,然后发送一个查询来更新该玩家的排名,但是如果我有1000名玩家呢?还是更多? 这意味着每次加载1000个查询 我想如果有一个SQL查询,我可以用它在一两个查询中执行相同的操作 我该怎么做?我根据玩家的

我有一个高分高分系统,它根据球员的经验计算位置。 但是现在我需要在其他地方使用玩家的排名,比如在网络上,也许更多的地方也像个人网站一样 高分,它将显示玩家在该技能中的排名

因此,像rank++那样循环&玩循环循环不会真正起作用,因为我需要保存该排名以备将来使用 其他地方

我所能做的就是遍历所有玩家,然后发送一个查询来更新该玩家的排名,但是如果我有1000名玩家呢?还是更多? 这意味着每次加载1000个查询

我想如果有一个SQL查询,我可以用它在一两个查询中执行相同的操作

我该怎么做?我根据玩家的经验排序计算等级,因此我的表结构如下所示:

表:

球员

id自动递增整数255

displayname varchar255唯一

秩整数255默认为空

体验bigint255


这将为id=1的用户提供排名。如果您想要每个玩家,只需删除WHERE子句:

选择a.id、a.displayname、a.rank、a.experience 从…起 选择id、displayname、@r:=@r+1作为等级、经验 从玩家中选择@rank:=0 tmp 按经验顺序描述 其中a.id=1 我不会直接在players表中排名,因为这意味着每次用户更改体验时都必须重新计算排名。您可以在任何时候查询球员或排行榜的排名


如果仍要更新它,可以使用此查询进行内部联接,以使用此查询中的列组更新原始表。

显示要从中提取列组的原始表结构,以及要使用列组的表users@FilipeSilva不确定你想要哪种结构,但如果有帮助的话,我已经编辑了它。出于某种原因,它实际上不能正常工作。我有两个用户,一个是2147 xp,一个是5 xp,一个是2147 xp,一个是排名2,另一个是排名1?