Сортировка чисел по рангу PDO PHP

поэтому я пытаюсь создать систему High-Scores на php, но есть одна очень сложная часть, которую я не могу понять.

Таким образом, в базе данных SQL будет несколько игроков, каждая строка будет иметь «playerName», «defencelvl», «defencexp» и другие, но в целях тестирования мы могли бы просто попытаться ранжировать их по тому, у кого больше всего опыта в защите.

Допустим, есть три записи, это будет выглядеть примерно так

--NAME-- -УРОВЕНЬ- -EXP-

«Иордания», «92», «32 424 525»

«Тайлер», «92», «32 892 241»

«Трент», «92», «32 492 641»

Таким образом, на странице рекордов будет отображаться только 1 игрок за поиск, что-то вроде view.php?username=Jordan, (я могу понять это), но самая трудная часть, которую я не могу понять, это их ранжирование. на каком месте они находятся, так что Джордан будет на 3-м месте, потому что его опыт ниже, чем у других, Тайлер будет на 1-м месте, потому что его опыт самый высокий, а Трент будет на 2-м месте, почти точный пример то, что я делаю, находится на этом веб-сайте игры http://services.runescape.com/m=hiscore/compare?user1=S%A0U%A0O%A0M%A0I , Это тот тип рекордов, который я делаю.

Опять же, я просто не могу понять, как ранжировать их, и я хотел бы сделать это для каждого навыка, не делая слишком много запросов PDO SQL. Если вы не понимаете, что я пытаюсь сказать, дайте мне знать, и я опубликую более подробное описание. Спасибо!!


person Patrick    schedule 02.02.2014    source источник
comment
Одно значение на ячейку. Ваш стол не должен выглядеть так в первую очередь.   -  person christopher    schedule 02.02.2014
comment
Вы должны быть немного более ясны в отношении того, что вы подразумеваете под их ранжированием. Вы имеете в виду получение данных в определенном порядке? вы имеете в виду, как показать это на экране? Вы имеете в виду, как написать запрос sql?. Кроме того, вы думали о структуре базы данных? какие таблицы задействованы? какова структура?   -  person PatomaS    schedule 02.02.2014
comment
@ user3238707 Я имею в виду, что у вас есть три значения CSV в одной ячейке. Не лучше ли поместить каждое значение в соответствующий столбец? Затем вы можете обращаться к ним по отдельности, и вам не нужно будет анализировать значения.   -  person christopher    schedule 02.02.2014


Ответы (1)


Предполагая, что таблица с информацией похожа на то, что вы показываете, вам нужен только простой запрос, например

SELECT * FROM `players`ORDER BY exp DESC

Вы можете использовать «desc», чтобы изменить порядок, если вам нужно/хотите.

Но, как упоминает Кристофер, сначала вы должны выяснить, какой будет структура дабатазы, а затем вы можете выполнять запросы. Не беспокойтесь о том, сколько их, если БД спроектирована правильно, проблем не будет.

person PatomaS    schedule 02.02.2014
comment
МОЯ БД очень организована, если хотите, я могу опубликовать часть SQL с примером. То, что вы мне показали, упорядочило бы его правильным образом, но я не смог бы сравнить текущую фактическую статистику игроков со списком организованной статистики из функции DESC и получить текущий рейтинг игроков. - person Patrick; 02.02.2014
comment
что вы хотите сравнить? результат запроса с чем? опубликованный мной запрос - это просто очень общий способ получить данные из таблицы в порядке возрастания или убывания, но если вам нужен конкретный результат, вам, возможно, придется использовать другие элементы, такие как LIMIT 1, это зависит от того, что вы хотите выполнить. Я не понимаю, чего вы действительно хотите. Можете ли вы перефразировать свой вопрос, опубликовать код или примеры? - person PatomaS; 02.02.2014