Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ranking - Jak sprawdzić pozycję wiersza w tabeli wg. kolumny?
Forum PHP.pl > Forum > PHP
Paziu
Witam. Muszę sprawdzić jaką pozycję zajmuje dany użytkownik w tabeli, według ilości postów jakie ten użytkownik napisał. Bardzo proszę o pomoc, jakiego zapytania trzeba tutaj użyć? Z góry wielkie dzięki za odpowiedzi wink.gif

np.
Mateusz - 5000 postów
Jaś - 2000
Andżelika - 5550

Jakie zapytanie napisać, żeby pokazało mi, że Mateusz, jest na drugiej pozycji według postów? W tabeli oczywiście jest kolumna ID, po której będę identyfikował użytkownika.
modern-web
Pokaż strukturę bazy danych. W Twoim przykładzie na pewno zostanie wykorzystana pętla while - tylko tyle mogę stwierdzić na chwilę obecną...
Ogólnie będziesz musiał zadać pytanie, które porządkować będzie wyniki według ilości postów (malejąco - DESC) z limitem / lub bez ... zależy od Ciebie.
W pętli odpowiednio wyświetlisz otrzymane z zapytania dane i koniec smile.gif
Crozin
http://nospor.pl/mysql-faq.html#faq-8
kadlub

  1. SELECT * FROM TABELA ORDER BY KOLUMNA DESC
mat-bi
Kadlub - co ma piernik do wiatraka? Podałeś mu zwykłu select, jaki jest przy większości zapytań
Paziu
Cytat(Crozin @ 26.04.2011, 18:51:58 ) *


Z tego co widzę, to Crozin podał mi to co potrzebowałem, wielkie dzięki wink.gif
Sprawdzę, później, ale powinno śmigać, jeszcze raz wielkie dzięki smile.gif
kadlub
Cytat(mat-bi @ 26.04.2011, 17:59:47 ) *
Kadlub - co ma piernik do wiatraka? Podałeś mu zwykłu select, jaki jest przy większości zapytań

chciał zapytanie to ma
niech sobie wstawi swoje dane i użyje pętli i będzie miał to co chciał bo nie podał jakie ma kolumny w tabeli to co mu można więcej napisać
Paziu
Dobra, srpawdziłem, wszystko działa tak jak chciałem, dzięki wielkie wink.gif

Cytat(kadlub @ 26.04.2011, 19:05:03 ) *
chciał zapytanie to ma
niech sobie wstawi swoje dane i użyje pętli i będzie miał to co chciał bo nie podał jakie ma kolumny w tabeli to co mu można więcej napisać


Mi chodziło o to, aby sprawdzić to przez MySQL, praktycznie bez PHP. Pomyśl, wyciąganie 10.000 rekordów i robienie tego za pomocą pętli nie byłoby zbyt optymalnym wykonaniem wink.gif
krowal
Ja to zrobiłem prościej:
  1. SELECT u.id, u.login, (SELECT count(u2.id) FROM users AS u2 WHERE u2.points > u.points) AS rank FROM cc_users AS u WHERE u.id = {id_sprawdzanego} GROUP BY u.id ORDER BY rank ASC


Po prostu robię COUNT() na zbiorze który jest powyżej mojego szukanego rekordu wg danej kolumny.
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.