Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Pomysł na analizę ankiet
Forum PHP.pl > Forum > Przedszkole
c4ash
Bry!

Muszę zrobić skrypt analizujący ankietę. Ankieta podzielona jest na 3 dzialy, każdy dział ma inną liczbe pytań.
Teraz chodzi o to, aby zaprezentować ocenę każego pytania (czyli suma pkt / ilość ankiet). I to jest logiczne. Gorzej z ułożeniem zapytań do bazy danych, aby nie zamuliło jej przy liczeniu...
Oczywistym jest rozwiązanie typu:

  1. $sql = 'SELECT count(id) AS sum_ankiet,sum(dzial11) AS sum_dzial11 FROM ankiety WHERE year="2014"';
  2. $result = mysqli_query($conn, $sql);
  3.  
  4. if (mysqli_num_rows($result) > 0) {
  5.  
  6. while($row = mysqli_fetch_assoc($result)) {
  7. echo 'Ilość ankiet: '.$row['sum_ankiet'];
  8. echo '<br />';
  9. echo 'Suma punktów: '.$row['sum_dzial11'].' średnia punktów: ';
  10. $srednia = $row['sum_dzial11'] / $row['sum_ankiet'];
  11. echo '<b>'.$srednia.'</b>';
  12.  
  13. }
  14. } else {
  15. echo "0 results";
  16. }


Ale tak dla każdego pytania? Wydaje mi się, że musi istnieć lepsze wyjście, tylko że go nie znam... jeszcze.
Ma ktoś pomysł może jak to rozwiązać?
markuz
  1. SELECT count(id) AS sum_ankiet,sum(dzial11) AS sum_dzial11, (sum_dzial11/sum_ankiet) AS srednia FROM ankiety WHERE year="2014"
daniel1302
Dla każdego pytania musisz liczyć, jeśli pytania są stałe i nie zmieniasz nic w tej ankiecie to od biedy możesz napisać zapytania UNION, ale lepszym wyjściem było by cache obliczonych danych gdzieś w pliku albo nawet spowrotem w bazie. Wtedy przed prezentacją odpalasz skrypt który pobierze ci najnowsze dane a później tylko cache i wtedy nie ma problemu.
c4ash
Czyli generalnie zapytanie osobne do kazdego pytania... a myslalem, ze bedzie latwiej.
Prezentacja będzie odpalana raz w miesiacu, wiec cashem nie bede sie bawic, bo nie ma sensu.

Podziekowac bardzo wszystkim.
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.