Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] ranking (pobieranie dwóch tabel)
Zmorcia
post 22.05.2010, 08:07:28
Post #1





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


Witam, mam problem ze złożeniem zapytania o rankingu.

Chodzi mi o to, że chce liczyć głosy z tabeli:

s_users_ranking
users_ranking_id | users_ranking_client | users_ranking_user

gdzie users_ranking_client to id użytkownika z bazy s_users, chodzi mi o to, ze chce każdemu użytkownikowi podliczyć głosy i wyświetlić do w formie:

uzytkownik - liczba głosów (rekordów w mysql)


jestem słąby z mysql, za pomoc dziekuje.


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
phpion
post 22.05.2010, 08:14:17
Post #2





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Użyj COUNT (ewentualnie SUM - zależy czy interesuje cię ilość czy suma) oraz GROUP BY. Do tego przydałby się pewnie jakiś JOIN żeby wyświetlić nazwę użytkownika zamiast jego ID. Nie jest to trudne zapytanie więc powinieneś sobie poradzić. W razie problemów pisz podając swoje aktualne zapytanie.
Go to the top of the page
+Quote Post
croc
post 22.05.2010, 08:18:43
Post #3





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


A czy nie lepiej zawrzeć to w jednej tabeli, skoro to relacja 1 <=> 1 ?
Go to the top of the page
+Quote Post
Zmorcia
post 22.05.2010, 08:27:34
Post #4





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


  1. public function initRankingList($smarty){
  2. $this->_sql_row_ranking = mysql_query("SELECT ".DB_PREFIX."users_ranking.*, ".DB_PREFIX."users.* FROM ".DB_PREFIX."users_ranking
  3. LEFT JOIN ".DB_PREFIX."users ON (".DB_PREFIX."users_ranking.users_ranking_client=".DB_PREFIX."users.user_priv_id)") or die (mysql_error());
  4.  
  5. while($this->row = mysql_fetch_array($this->_sql_row_ranking)){
  6. print_r($this->row).'<br />';
  7. }
  8. }


mam zapytanie, tylko nie wiem jak zrobić, aby pobierało i segregowało użytkowników od najwiekszej ilosci głosów (tabela users_ranking)..

oraz jak wyświetlić ilość głosów.

Ten post edytował Zmorcia 22.05.2010, 08:29:11


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
croc
post 22.05.2010, 08:31:05
Post #5





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Trochę dziwne, że potrafisz JOIN-ować, a nie potrafisz sortować i wybierać pól...
Go to the top of the page
+Quote Post
Zmorcia
post 22.05.2010, 08:31:54
Post #6





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


heh, widzisz biggrin.gif


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
phpion
post 22.05.2010, 08:38:10
Post #7





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




ORDER BY
Go to the top of the page
+Quote Post
Zmorcia
post 22.05.2010, 08:41:29
Post #8





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


Daj mi gotowe zapytanie, to dam ci $ na piwo smile.gif


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
phpion
post 22.05.2010, 09:04:31
Post #9





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Chyba cie powaliło. Masz wszystkie informacje do rozwiązania swojego problemu. Poza tym: pijam dość drogie piwa (takie za 50 zł, ale spoko - jedno piję przez godzinę).
Go to the top of the page
+Quote Post
Zmorcia
post 22.05.2010, 09:11:29
Post #10





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


ehh spoko znajdą sie tacy którzy pomogą. elo


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
phpion
post 22.05.2010, 09:29:59
Post #11





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Zmorcia @ 22.05.2010, 10:11:29 ) *
ehh spoko znajdą sie tacy którzy pomogą. elo

Raczej zrobią. No ale to już nie mój problem. Pozdrawiam.
Go to the top of the page
+Quote Post
kielich
post 22.05.2010, 11:13:47
Post #12





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


  1.  
  2. SELECT ".DB_PREFIX."users_ranking.*, ".DB_PREFIX."users.* FROM ".DB_PREFIX."users_ranking
  3. LEFT JOIN ".DB_PREFIX."users ON (".DB_PREFIX."users_ranking.users_ranking_client=".DB_PREFIX."users.user_priv_id
  4. GROUP BY users_ranking.users_ranking_client ORDER BY users_ranking.ocena


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
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: 1.06.2024 - 10:08