Нужно выполнить ORDER BY дважды, проблемы с рейтингом

Я изо всех сил пытался установить это в течение многих месяцев и месяцев!
Мне нужна помощь с установкой рейтинга в моей базе данных.

Вот так выглядит мой текущий код:

$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

Решение

Обычно ранговое число представляет собой целое число, которое вы можете сгенерировать путем итерации по строкам результата запроса. например. echo $ count ++;

Если вы вычислили или присвоили рейтинг в своей базе данных, вы можете добавить операторы «упорядочить по», разделенные запятыми. например.

    FROM `FFA_Stats`
INNER JOIN `player`
ON `FFA_Stats`.`player_uuid`=`player`.`uuid`
ORDER BY `rank` DESC, `points` DESC) AS `sub`
");
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]