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




Po pierwsze: Patrzę na tabelę z ocenami i widzę jedną głupotę. Jak użytkownik może kilka razy ocenić tę samą grę? Nie widzisz tego?
1 test 5
1 test 3

2 test 2
3 test 5
3 test 1

Gry numer 1 i 3 zostały ocenione przez tego samego usera dwukrotnie. Tego należy uniknąć. Jeśli już się tego pozbędziesz to napisanie zapytania robiącego coś w stylu
  1. SELECT game_id, avg(rate) AS srednia FROM games_rate GROUP BY game_id ORDER BY srednia DESC
a co zrobiłeś wcześniej xamrex da faktycznie prawidłowy rezultat. Na ten moment też powinno. O ile tabela nie ma byków!
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: 27.12.2025 - 23:36