Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pozycja w rankingu Proszę o pomoc
Forum PHP.pl > Forum > PHP
dtrb
mam tabelę gdzie każdy user ma jakąś sumę punktów.

Chcę, aby każdy user jak się zaloguje na swoje konto to widział tylko swoją pozycję w rankingu... Niby prostę się wydaję, wiem jak posortować rekordy według ilości punktów ale nie wiem jak wygenerować liczbę która określi pozycję w takim rankingu.


Proszę o pomoc!
Michael2318
  1. $sql = "SELECT jakies_id FROM `tabela` ORDER BY jakies_id DESC"; // wyszukujemy wszystkie ID jakiejs tabeli, od najwiekszego do najmniejszego
  2. $result = mysql_query($sql)
  3. or die('error');
  4. $i = 0; // zmienna liczaca, na start przyjmuje 0
  5. $poszukiwane_id = 21; // ID usera, którego ID musimy okreslic w rankingu
  6. while ( $row = mysql_fetch_assoc($result) )
  7. {
  8. $i++;
  9. if ( $row['jakies_id'] == $poszukiwane_id ) // jesli obecnie sprawdzane ID jest rowne ID wybranego ID ze zmiennej $poszukiwane_id
  10. {
  11. break; // .. to stopujemy petle
  12. }
  13. }
  14.  
  15. echo 'Twoja pozycja w rankingu to: '.$i; // .. a jego ranking to wartość zmiennej $i (liczenie zatrzymała wtedy, gdy znaleziono ID ww. usera)


Do najlepszych rozwiązań może nie należy, ale działa wink.gif
mortus
Chyba jakoś tak:
  1. SELECT * FROM (SELECT @i:=@i+1 `pozycja`, `c`.* FROM (SELECT @i:=0) `start`, `category` `c` ORDER BY `id` DESC) `pozycje` WHERE `id` = USER_ID;

Więcej "sztuczek" u nospora.
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-2025 Invision Power Services, Inc.