Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Obliczenie średniej dla kilku pól
-kototi-
post
Post #1





Goście







Witam,

Mam w tabeli pola: rating1, rating2, rating3, rating4, rating5 i w tych polach przetrzymuje liczbę poszczególnych ocen, np. rating3 = 25 czyli 25 razy coś tam oceniono na 3, itp.

Chciałbym wyliczyć średnią tych trzech pól.

Zrobiłem tak, ale nie działa:

  1.  
  2. <?php
  3. include("connect.php");
  4. $query = "SELECT id,rating1,rating2,rating3,rating4,rating5 FROM tabela WHERE id='".(int)$_GET['id']."'";
  5. $result = mysql_query ($query);
  6. while ($row = mysql_fetch_array($result)){
  7. $average_ratings .= '('.$row[1].'*1)+('.$row[2].'*2)+('.$row[3].'*3)+('.$row[4].'*4)+('.$row[5].'*5)/'.$row[1].'+'.$row[2].'+'.$row[3].'+'.$row[4].'+'.$row[5].'';}
  8. echo ''.$average_ratings.''
  9. ?>
  10.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Możesz sobie wyliczyć średnią już w zapytaniu, będzie bardziej elegancko.

  1. SELECT avg(rating1*1+rating2*2+rating3*3), id WHERE id = 123 GROUP BY id


123 to przykładowe id.
Go to the top of the page
+Quote Post
trueblue
post
Post #3





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


Cytat(b4rt3kk @ 31.03.2014, 14:48:03 ) *
Możesz sobie wyliczyć średnią już w zapytaniu, będzie bardziej elegancko.
  1. SELECT avg(rating1*1+rating2*2+rating3*3), id WHERE id = 123 GROUP BY id

Z użyciem AVG nie, ale przez metodę, którą wykorzystuje w PHP.
AVG dzieli przez liczbę składników, a on dzieli przez sumę składnikó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: 6.10.2025 - 21:05