Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie konkretnego rankingu
Forum PHP.pl > Forum > Bazy danych > MySQL
swiezak77
Witajcie, mam problem z pewnym kodem integrującym się z bazą mysql. Wyswietlanie miejsca w rankingu na podstawie wyliczenia rekordów. Jednak z tego zapytania co wykombinowałem nawet jeśli kilka osób posiada taki sam rate to wszyscy dostaną to samo miejsce w rankingu.
Wykombinowałem coś takiego:
  1. "SELECT rate, count FROM (SELECT COUNT(*) as count FROM `baza`) a CROSS JOIN (SELECT COUNT(*) as rate FROM `baza` WHERE `rate` > '%i' ORDER BY `rate` DESC) b"


Moim celem jest, aby wyświetlanie konkretnego rankingu gracza było w tej samej kolejności co topka na takiej zasadzie:
  1. SELECT * FROM baza ORDER BY rate DESC LIMIT;


Ostatecznie oczekuje jednego rekordu z kolumna:

NazwaGracza-miejsce_w_rankingu-ilosc_wszystkich_miejsc
User-23-551
trueblue
Cytat(swiezak77 @ 15.01.2024, 20:34:07 ) *
Jednak z tego zapytania co wykombinowałem nawet jeśli kilka osób posiada taki sam rate to wszyscy dostaną to samo miejsce w rankingu.

A jak miałoby być różnicowane miejsce jeśli mają taki sam rate?
Salvation
Jeżeli "rate" jest jedyną wartością, która decyduje o miejscu, to nic innego nie wymyślisz. Możesz jednak dodać dodatkowe sortowanie po dacie - rosnąco. Dzięki temu, jeżeli nowy zawodnik otrzyma taki sam rate jak poprzedni, będzie "oczko niżej", bo wyrównał wynik.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.