Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+MySQL] Średnia ważona z danymi z bazy
Forum PHP.pl > Forum > PHP
kamilos809
Hejka!
Mam malutki problemik :/ Ogółem staram się zrobić średnią ważoną, gdzie normalnie byłoby jakoś tak:
  1. $ocena1=6*2;
  2. $ocena2=4*3;
  3. $ocena3=2*1;
  4. $suma_ocen=$ocena1+$ocena2+$ocena3;
  5. $suma_wag=2+3+1;
  6. $srednia=$suma_ocen / $suma_wag;
  7. echo '<br>'.$srednia;

Ale... ja staram się zrobić ją w połączeniu z bazą. W bazie mam oczywiście tabelkę z komórkami: id, ocena, waga, przedmiot.
I teraz jakim sposobem się kierować, żeby ładnie to policzyć?
thek
Najprościej? W każdym wierszu zrób sobie mnożenie waga * ocena, a potem zrób sumę tych iloczynów i podziel przed sumę wag. Zgodnie z wzorem.
radziopoke
a nie łatwiej po prostu zrobić to za pomocą odpowiedniego zapytania?
  1. SELECT (SUM(ocena*waga)/SUM(waga)) FROM tabela
kamilos809
radziopoke, Twoja propozycja jest dobra, tyle że jak podstawię pod moje to mi wyskakuje "Resource id #32".
zanim ktoś zapyta... tak to wygląda:
  1. $sql="SELECT (SUM(ocena*waga)/SUM(waga)) FROM dziennik_oceny WHERE przedmiot='$przedmiot'";
  2. $srednia=mysql_query($sql);
  3. echo $srednia;
toffiak
A teraz kliknij w link z mysql_query ze swojego listingu o dowiesz się dlaczego zwraca "Resource id #32"
kamilos809
Staram się ogarnąć o co Ci chodzi, ale nie rozumiem...:/
Monter08
  1. $sql="SELECT (SUM(ocena*waga)/SUM(waga)) FROM dziennik_oceny WHERE przedmiot='$przedmiot'";
  2. $srednia=mysql_fetch_row(mysql_query($sql));
  3. echo $srednia[0];

na następny raz dokładniej czytaj.
kamilos809
dzięki... próbowałem poszukać, ale nic nie znalazłem po prostu :/
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.