我一直在努力设置好几个月和几个月! 我需要帮助设置我的数据库的排名。
这是我当前代码的样子:
$db->queryNoReturn("SET @a:=0");
return $db->query("
SELECT * FROM
(SELECT
`FFA_Stats`.`id`,
`FFA_Stats`.`player_uuid`,
`FFA_Stats`.`points`,
`FFA_Stats`.`hits`,
`FFA_Stats`.`shots`,
`FFA_Stats`.`wins`,
`FFA_Stats`.`tkills`,
`FFA_Stats`.`tdeaths`,
(`FFA_Stats`.`tkills`/`FFA_Stats`.`tdeaths`) as `KDR`,
`player`.`name`,
`player`.`uuid`,
`player`.`online`,
(@a:=@a+1) AS rank
FROM `FFA_Stats`
INNER JOIN `player` ON `FFA_Stats`.`player_uuid`=`player`.`uuid`
ORDER BY `points` DESC
) AS `sub`
");
基本上它按点排序,您可以在这里查看它的样子:http://filipvlaisavljevic.com/clash/ffa.php
我想要做的就是在排序表中添加排名,这样得分最多的玩家就是#1等。
有谁知道该怎么做?
答案 0 :(得分:0)
通常,排名编号是您可以通过迭代查询结果的行生成的整数。例如。 echo $ count ++;
如果您已在数据库中计算或归因于排名,则可以添加以逗号分隔的“order by”语句。例如
FROM `FFA_Stats`
INNER JOIN `player`
ON `FFA_Stats`.`player_uuid`=`player`.`uuid`
ORDER BY `rank` DESC, `points` DESC) AS `sub`
");