Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ankieta - mały problem
Forum PHP.pl > Forum > Przedszkole
espeen
Witam.
Robię ankietę w której jest pytanie np.

1. Jak często siedzisz przed komp?
a) godzine dziennie
cool.gif 2 godziny
c) 3 godziny
d) nie odchodze wogóle

robie to za pomocą formularza i obiektów typu ratio.

input type=radio name=pyt_1 value=1 checked>Zdecydowanie tak
<input type=radio name=pyt_1 value=2>Raczej tak
<input type=radio name=pyt_1 value=3>Raczej nie
<input type=radio name=pyt_1 value=4>Zdecydownie nie

Mam wiecej takich pytan i i w kolejnch pytaniach pyt_1 zmienia sie na pyt_2 itd.

Jak na końcu zliczyć ile razy wystąpiła odwpiedź a ile razy odpowiedz b itd oraz która wystąpiła najwięcej razy?
ToPeR
Kod
<input type=radio name=pyt_1 value=a checked>Zdecydowanie tak
<input type=radio name=pyt_1 value=b>Raczej tak
<input type=radio name=pyt_1 value=c>Raczej nie
<input type=radio name=pyt_1 value=d>Zdecydownie nie

...
// kolejne pytania z polami o nazwach pyt_2, pyt_3, ... itd...


  1. <?php
  2. $ilosc_pytan = 10; // ilość pytań
  3. $wyniki = array('a'=>0,'b'=>0,'c'=>0,'d'=>0); // tablica z iloscia wystąpieni danej odpowiedzi
  4.  
  5. for (int $i=1;$i<=$ilosc_pytan;$i++) {
  6. $wyniki[$_POST['pyt_'.$i]]++;
  7. }
  8. $max = max($wyniki); // wartość odpowiedzi, która wystąpiła najwięcej razy
  9. $odp = array_keys($wyniki,$max); // odpowiedz, która wystapiła najwiecej razy
  10. $wyniki; // tablica z wynikami każdej z odpowiedzi a,b,c,d
  11. ?>


Mogą być błędy, bo pisałem to z palca teraz. smile.gif
espeen
Przetestowałem ten kod i kurcze nie do końca działa tak dobrze jak dobrze wygląda,
trochę go poprawiłem i jest ok smile.gif
Jednak jeśli ktoś ma lepsze rozwiązanie tego problemu proszę pisać.
Pai
A jak wygląda poprawnie działający kod?? rolleyes.gif
espeen
Cytat(Pai @ 2006-01-09 21:34:50)
A jak wygląda poprawnie działający kod??

Otóż ja wykorzystałem tylko początkowy fragment tego kodu ponieważ reszta się sypała ale ten początek był najważniejszy.
Zrobiłem to tak:

  1. <?php
  2. $max = max($wyniki); //wartość odpowiedzi, która wystąpiła najwięcej razy
  3. $wyniki; // tablica z wynikami każdej z odpowiedzi a,b,c,d
  4. $a=$wyniki[1];
  5. $b=$wyniki[2];
  6. $c=$wyniki[3];
  7. $d=$wyniki[4];
  8.  
  9. if($a>$b){
  10. //czyli najwiecej odpowiedzi a
  11. }
  12. else{
  13.  if($b>$c)
  14.  {
  15. //wyswietla gdy najwiecej odpowiedzi b
  16.  } 
  17. else {
  18. if($c>$d)
  19. {
  20. //wyswietla gdy najwiecej odpowiedzi c
  21. }
  22. else
  23. {
  24.  //wyswietla gdy najwiecej odpowiedzi d
  25. }
  26. }
  27.  
  28.  
  29. }
  30. ?>


Dla moich potrzeb to działa idealnie ponieważ potrzebowałem coś takiego, że gdy najwiecej jest odpowiedzi a to załącza jakis tam plik a gdy b to inny itd...
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.