Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Pomysł na analizę ankiet
c4ash
post 28.01.2015, 14:01:17
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


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ć?

Ten post edytował c4ash 28.01.2015, 14:02:41
Go to the top of the page
+Quote Post
markuz
post 28.01.2015, 15:27:00
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


  1. SELECT count(id) AS sum_ankiet,sum(dzial11) AS sum_dzial11, (sum_dzial11/sum_ankiet) AS srednia FROM ankiety WHERE year="2014"


--------------------
Go to the top of the page
+Quote Post
daniel1302
post 28.01.2015, 15:41:54
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


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.
Go to the top of the page
+Quote Post
c4ash
post 28.01.2015, 20:47:26
Post #4





Grupa: Zarejestrowani
Postów: 73
Pomógł: 9
Dołączył: 14.01.2010

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


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:23