Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] ranking (pobieranie dwóch tabel)
Forum PHP.pl > Forum > Przedszkole
Zmorcia
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.
phpion
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.
croc
A czy nie lepiej zawrzeć to w jednej tabeli, skoro to relacja 1 <=> 1 ?
Zmorcia
  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.
croc
Trochę dziwne, że potrafisz JOIN-ować, a nie potrafisz sortować i wybierać pól...
Zmorcia
heh, widzisz biggrin.gif
phpion
ORDER BY
Zmorcia
Daj mi gotowe zapytanie, to dam ci $ na piwo smile.gif
phpion
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ę).
Zmorcia
ehh spoko znajdą sie tacy którzy pomogą. elo
phpion
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.
kielich
  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
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.