Обучение/Помощь новичкам | Помощь с кодом
Тема закрыта by
ZnTor
Причина: TuT в очередной раз помог,спасибо большое
Причина: TuT в очередной раз помог,спасибо большое
TuT (02.04.2019 в 23:33)
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем
Тебе всем вывести? Или на странице юзера?
ZnTor (02.04.2019 в 23:27)
TuT , почти работает,не на всех игроках.Я так и не понял зачем
<? if($row['id'] == $user['id']){ Тебе всем вывести? Или на странице юзера?
на странице юзера
TuT (02.04.2019 в 23:31)
monobogdan (02.04.2019 в 23:26)
TuT , на миллионе игроков ты тоже индексацию собрался на клиенте делать? SQL в таких моментах не продуман, когда хочется написать что то в духе:
Язык этого не даёт. Поэтому приходится городить велики вроде такого:
Это понятно, что и при 2-3к игроков проблемы будут. Сидеть и писать более сложные запросы не вижу смысла, человек только учится. Если я сейчас ему распишу вложенный в SQL запрос еще запрос, не думаю что он поймет о чем речь.
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 ,
Тогда выберем 1000 и все.
________
посл. ред. 02.04.2019 в 23:52; всего 1 раз(а); by TuT
<?
///если $ank это переменная с юзером то
$q = mysql_query("SELECT `id` FROM `players` WHERE `record_auto` < '".$ank['record_auto']."' ORDER BY `record_auto` DESC LIMIT 1000");
$position = 0;
while($row = mysql_fetch_array($q)) {
$position++;
if($row['id'] == $ank['id']){
if($aa <= 1000){
echo $position;//место юзера
}else{
echo "Вы не участвуете в рейтинге";
}
}
}
Тогда выберем 1000 и все.
________
посл. ред. 02.04.2019 в 23:52; всего 1 раз(а); by TuT
monobogdan , Так, стоп. Мы не посчитаем вашим методом место юзера.
TuT (02.04.2019 в 23:46)
ZnTor ,
ZnTor ,
<?
///если $ank это переменная с юзером то
$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'] == $ank['id']){
echo $position;//место юзера
}
} уже так пробовал,результат тот же
ZnTor , Тут с чем сравниваем `record_auto` < '".$ank['record_auto']."' ?
TuT (02.04.2019 в 23:57)
ZnTor , Тут с чем сравниваем `record_auto` < '".$ank['record_auto']."' ?
ZnTor , Тут с чем сравниваем `record_auto` < '".$ank['record_auto']."' ?
record_auto стандартно стоит 999.999 должно быть меньше чем $ank['record_auto'] это результат игрока(к примеру 322.456)
ZnTor (02.04.2019 в 23:58)
TuT (02.04.2019 в 23:57)
ZnTor , Тут с чем сравниваем `record_auto` < '".$ank['record_auto']."' ?
record_auto стандартно стоит 999.999 должно быть меньше чем $ank['record_auto'] это результат игрока(к примеру 322.456)
TuT (02.04.2019 в 23:57)
ZnTor , Тут с чем сравниваем `record_auto` < '".$ank['record_auto']."' ?
record_auto стандартно стоит 999.999 должно быть меньше чем $ank['record_auto'] это результат игрока(к примеру 322.456)
Так подожди, мы делаем поиск по $ank['record_auto'], то есть по таблице пользователя, выкинь это условие и все. Или поясни точнее, для чего тебе это условие.
TuT , результат левый(не соответсует вывод который на самом деле)
