Zmorcia
22.05.2010, 08:07:28
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
22.05.2010, 08:14:17
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
22.05.2010, 08:18:43
A czy nie lepiej zawrzeć to w jednej tabeli, skoro to relacja 1 <=> 1 ?
Zmorcia
22.05.2010, 08:27:34
public function initRankingList($smarty){
$this->_sql_row_ranking
= mysql_query("SELECT ".DB_PREFIX
."users_ranking.*, ".DB_PREFIX
."users.* FROM ".DB_PREFIX
."users_ranking LEFT JOIN ".DB_PREFIX
."users ON (".DB_PREFIX
."users_ranking.users_ranking_client=".DB_PREFIX
."users.user_priv_id)") or
die (mysql_error());
}
}
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
22.05.2010, 08:31:05
Trochę dziwne, że potrafisz JOIN-ować, a nie potrafisz sortować i wybierać pól...
Zmorcia
22.05.2010, 08:31:54
heh, widzisz
phpion
22.05.2010, 08:38:10
ORDER BY
Zmorcia
22.05.2010, 08:41:29
Daj mi gotowe zapytanie, to dam ci $ na piwo
phpion
22.05.2010, 09:04:31
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
22.05.2010, 09:11:29
ehh spoko znajdą sie tacy którzy pomogą. elo
phpion
22.05.2010, 09:29:59
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
22.05.2010, 11:13:47
SELECT ".DB_PREFIX."users_ranking.*, ".DB_PREFIX."users.* FROM ".DB_PREFIX."users_ranking
LEFT JOIN ".DB_PREFIX."users ON (".DB_PREFIX."users_ranking.users_ranking_client=".DB_PREFIX."users.user_priv_id
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.