Loading...
mrcatoff , нужно создать поле positon ?) как я понимаю ?
213731682 , нет, поле position это название вывода 2го селекта, посмотри там идёт (SELECT ...) as POSITION тоесть, я выполняю ещё 1 запрос в котором беру количество записей >= моего damage_score, и из-за чего и получаю позицию
mrcatoff , понял спасибо большое
213731682 , нет за что, учитесь на здоровье.
К справке внутрь select можно встраивать другие select, так же советую почитать join, group by полезная информация )
mrcatoff , а эти as t1, t2 для удобства ?
213731682 , в данном случаи нет, так как я обращаюсь к одинаковым таблицам, то я разделаю таблицы запросов на 2 таблицы которые могут взаимодействовать друг с другом (P.S.: Это очень грубо сказано) (если я просто напишу users то position всегда будет 0)
mrcatoff , ещё один вопрос , например мне надо вывести сколько осталось набрать до определенной позиции как на скрине например

Изображение

------
80786_IMG_20220204_112726.jpg (38.1 Kb)
Скачиваний: 88
mrcatoff , догадался лишь так сделать
php
   // какое место занимает игрок public static function get_position_by_id_user($id_user) { $sql = "SELECT *, (SELECT COUNT(*) FROM urfin_part as t2 WHERE t2.`damage_score` >= t1.`damage_score`) as `position` FROM `urfin_part` as t1 WHERE `t1`.`id_users` = ?"; $sth = db::$pdo->prepare($sql); $sth->execute([$id_user]); return $sth->fetch(PDO::FETCH_ASSOC); }  // Сколько осталось до следующей позиции public static function t() { $q = self::get_damage_score(ID); $sql = "SELECT *, (SELECT COUNT(*) FROM urfin_part as t2 WHERE t2.`damage_score` >= t1.`damage_score`) as `position` FROM `urfin_part` as t1 WHERE `t1`.`damage_score` > $q"; $sth = db::$pdo->prepare($sql); $sth->execute([]); return $sth->fetch(PDO::FETCH_ASSOC); }  // на скоколько остает игрок позади аас public static function tt() { $q = self::get_damage_score(ID); $sql = "SELECT *, (SELECT COUNT(*) FROM urfin_part as t2 WHERE t2.`damage_score` >= t1.`damage_score`) as `position` FROM `urfin_part` as t1 WHERE `t1`.`damage_score` < $q"; $sth = db::$pdo->prepare($sql); $sth->execute([]); return $sth->fetch(PDO::FETCH_ASSOC); }   
213731682 ,
sql
   SELECT *, (SELECT COUNT(*) FROM `users` WHERE `users`.`damage_score` >= t1.`damage_score`) as `position`, (SELECT damage_score FROM `users` WHERE `users`.`damage_score` < t1.`damage_score` ORDER BY damage_score LIMIT 1) as previous_damage_score, (SELECT damage_score FROM `users` WHERE `users`.`damage_score` > t1.`damage_score` ORDER BY damage_score LIMIT 1) as next_damage_score FROM `users` as t1;   

________
посл. ред. 04.02.2022 в 12:22; всего 1 раз(а); by mrcatoff
mrcatoff , выглядит страшно *biggrin*
Онлайн: 3
Время:
Gen. 0.0969
(c) Bym.Guru 2010-2026