Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Wyświetlanie konkretnego rankingu

Napisany przez: swiezak77 15.01.2024, 20:34:07

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

Napisany przez: trueblue 16.01.2024, 19:38:07

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?

Napisany przez: Salvation 21.01.2024, 14:13:52

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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)