Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sortowanie wedłu średniej ocen
xamrex
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

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


Witam.
Posiadam w bazie tabele z ocenami gier.

Struktura
game_id user ocena
Przykładowe wpisy
1 test 5
1 test 3
2 test 2
3 test 5
3 test 1

Mój kod
  1. $wynik= mysql_query ("SELECT * FROM games_rate ");
  2. while ($rekord = mysql_fetch_array ($wynik)) {
  3. $id = $rekord[0];
  4.  
  5.  
  6. $srednia=mysql_query ("SELECT count(*) as numberrate,SUM(rate) as sumrate FROM games_rate WHERE game_id=$id ");
  7. while ($rekord2 = mysql_fetch_array ($srednia)) {
  8. $sredniawka= round($rekord2[1]/$rekord2[0] ,2);
  9.  
  10. echo "SREDNIA $sredniawka  ";
  11. }
  12.  
  13.  
  14.  
  15. echo "GRA $rekord[0]<br>";
  16. }


Jak wyświetlić gry posortowane według średnich?

Domyślam się, że jednym ze sposobów to wyświetlenie właśnie wszystkich gier wraz z średnimi, dodanie każdego wpisu do tabeli i sortowanie wg średniej, następnie wyświetlenie tego. Jednak nie potrafię tego napisać

Ten post edytował xamrex 6.06.2010, 22:53:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




SQL i pisanie w nim zapytań jest proste jeśli ktoś zna podstawy tego języka (kolejność i składnię klauzul) i umie angielski. Zapytanie można bowiem do nich wtedy ładnie zapisać. Przykładem jest Twoje choćby:
SELECT game_id, avg(rate) AS srednia FROM games_rate GROUP BY game_id HAVING count(rate) > 1 ORDER BY srednia DESC
Wybierz ( SELECT ) game_id i średnią ( avg ) głosów nazywając ją ( AS ) srednia z ( FROM ) games_rate grupując głosy po ( GROUP BY ) game_id i jeśli dla danego game_id posiadającego (HAVING) więcej niż jedną ocenę (count(rate) > 1 ) zaś całość wyników uporządkuj ( ORDER BY ) po średniej - malejąco ( DESC ) (IMG:style_emoticons/default/smile.gif) Jak widzisz, jest to dość proste i naturalne, jeśli dobrze sie całość opisze. Czasem jest trudniej jeśli ktoś pomyli kolejność, użyje słów zarezerwowanych bądź zrobi byka, literówkę. Wtedy się potrafi parser burzyć.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 17:28