Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ranking - Jak sprawdzić pozycję wiersza w tabeli wg. kolumny?, Bardzo proszę o pomoc.
Paziu
post 26.04.2011, 15:50:03
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 23.09.2007
Skąd: Tarnobrzeg

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Paziu 26.04.2011, 15:51:38
Go to the top of the page
+Quote Post
modern-web
post 26.04.2011, 17:45:22
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


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


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
Crozin
post 26.04.2011, 17:51:58
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


http://nospor.pl/mysql-faq.html#faq-8
Go to the top of the page
+Quote Post
kadlub
post 26.04.2011, 17:57:27
Post #4





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

Ostrzeżenie: (0%)
-----



  1. SELECT * FROM TABELA ORDER BY KOLUMNA DESC
Go to the top of the page
+Quote Post
mat-bi
post 26.04.2011, 17:59:47
Post #5





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


Kadlub - co ma piernik do wiatraka? Podałeś mu zwykłu select, jaki jest przy większości zapytań
Go to the top of the page
+Quote Post
Paziu
post 26.04.2011, 18:01:59
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 23.09.2007
Skąd: Tarnobrzeg

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kadlub
post 26.04.2011, 18:05:03
Post #7





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

Ostrzeżenie: (0%)
-----


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ć
Go to the top of the page
+Quote Post
Paziu
post 26.04.2011, 19:50:33
Post #8





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 23.09.2007
Skąd: Tarnobrzeg

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
krowal
post 26.04.2011, 21:07:04
Post #9





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 01:04