Loading...
ZnTor , <?
///ASC (по возрастанию) или DESC (по убыванию)
$q = mysql_query("SELECT `id` FROM `players` WHERE `record_auto` < '".$ank['record_auto']."' ORDER BY `record_auto` DESC");
$position = 0;
while($row = mysql_fetch_array($q)) {
$position++;

if($row['id'] == $user['id']){

echo $position;//твое место

}
}
TuT , на миллионе игроков ты тоже индексацию собрался на клиенте делать? SQL в таких моментах не продуман, когда хочется написать что то в духе:
SELECT `place` = INDEXOF(`uid` = '0') FROM users ORDER BY place

Язык этого не даёт. Поэтому приходится городить велики вроде такого:
SELECT COUNT(*) FROM(SELECT * FROM users ORDER BY `score`) WHERE score < $player[score]

Но я не эксперт в SQL, поэтому могу не знать. Поправьте если не прав.
________
посл. ред. 02.04.2019 в 23:29; всего 1 раз(а); by monobogdan
TuT , почти работает,не на всех игроках.Я так и не понял зачем <? if($row['id'] == $user['id']){
________
посл. ред. 02.04.2019 в 23:27; всего 1 раз(а); by ZnTor
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем <? if($row['id'] == $user['id']){

Это вредный совет, см. мой предыдущий пост.
monobogdan (02.04.2019 в 23:27)
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем <? if($row['id'] == $user['id']){

Это вредный совет, см. мой предыдущий пост.

только хотел вам отписать,второй запрос так и не понял,можете обьснить что он дает?так и не понял почему нужен такой сложный велосипед
monobogdan (02.04.2019 в 23:26)
TuT , на миллионе игроков ты тоже индексацию собрался на клиенте делать? SQL в таких моментах не продуман, когда хочется написать что то в духе:
SELECT `place` = INDEXOF(`uid` = '0') FROM users ORDER BY place

Язык этого не даёт. Поэтому приходится городить велики вроде такого:
SELECT COUNT(*) FROM(SELECT * FROM users ORDER BY `score`) WHERE score < $player[score]

Это понятно, что и при 2-3к игроков проблемы будут. Сидеть и писать более сложные запросы не вижу смысла, человек только учится. Если я сейчас ему распишу вложенный в SQL запрос еще запрос, не думаю что он поймет о чем речь.
ZnTor , где
FROM(SELECT * FROM users ORDER BY `score`)
промежуточная выборка, которую мы отсортируем
WHERE score < $player[score]
Уже в отсортированной выборке выбираем все индексы, которые меньше индекса игрока.
TuT , приучать к какашке тоже не дело.
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем <? if($row['id'] == $user['id']){

Тебе всем вывести? Или на странице юзера?
monobogdan (02.04.2019 в 23:32)
TuT , приучать к какашке тоже не дело.

Учится нужно от простого к сложному.
Онлайн: 5
Время:
Gen. 0.0926
(c) Bym.Guru 2010-2026