Обучение/Помощь новичкам | Помощь с кодом
Тема закрыта by
ZnTor
Причина: TuT в очередной раз помог,спасибо большое
Причина: TuT в очередной раз помог,спасибо большое
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 в таких моментах не продуман, когда хочется написать что то в духе:
Язык этого не даёт. Поэтому приходится городить велики вроде такого:
Но я не эксперт в SQL, поэтому могу не знать. Поправьте если не прав.
________
посл. ред. 02.04.2019 в 23:29; всего 1 раз(а); by monobogdan
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 , почти работает,не на всех игроках.Я так и не понял зачем
________
посл. ред. 02.04.2019 в 23:27; всего 1 раз(а); by ZnTor
<? if($row['id'] == $user['id']){
________
посл. ред. 02.04.2019 в 23:27; всего 1 раз(а); by ZnTor
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем
TuT , почти работает,не на всех игроках.Я так и не понял зачем
<? if($row['id'] == $user['id']){ Это вредный совет, см. мой предыдущий пост.
monobogdan (02.04.2019 в 23:27)
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем
Это вредный совет, см. мой предыдущий пост.
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем
<? if($row['id'] == $user['id']){ Это вредный совет, см. мой предыдущий пост.
только хотел вам отписать,второй запрос так и не понял,можете обьснить что он дает?так и не понял почему нужен такой сложный велосипед
monobogdan (02.04.2019 в 23:26)
TuT , на миллионе игроков ты тоже индексацию собрался на клиенте делать? SQL в таких моментах не продуман, когда хочется написать что то в духе:
Язык этого не даёт. Поэтому приходится городить велики вроде такого:
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 , почти работает,не на всех игроках.Я так и не понял зачем
TuT , почти работает,не на всех игроках.Я так и не понял зачем
<? if($row['id'] == $user['id']){ Тебе всем вывести? Или на странице юзера?
monobogdan (02.04.2019 в 23:32)
TuT , приучать к какашке тоже не дело.
TuT , приучать к какашке тоже не дело.
Учится нужно от простого к сложному.