Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Obliczenie średniej dla kilku pól
Forum PHP.pl > Forum > Przedszkole
kototi
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.  
nospor
1) A moze bys raczyl napisac, czym sie objawia to nie dzialanie??
2) echo ''.$average_ratings.'' zjadles SREDNIK na koncu

ps: czemu budujesz w tekscie dzialanie? Zupelnie bez sensu

nie:
$wynik = '('.$zm1.'*1)+('.$zm2.'*2) ....
a normalnie, masz to wyliczac:
$wynik = ($zm1*1 + $zm2*2) / ($zm1 + $zm2);
b4rt3kk
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.
nospor
@b4rt3kk Twoje zapytanie nie wylicza tego co trzeba wink.gif
trueblue
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.
Sephirus
No to można chyba ewentualnie (i jak prosto):

  1. SELECT (rating1*1+rating2*2+rating3*3)/(rating1+rating2+rating3) AS `average`, id WHERE id = 123
nospor
No tak, to jest dokladnie przeniesienie tego co napisalem w php do mysql. Tutaj zadne AVG nie zdadzą egzaminu.
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.