Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ankieta - mały problem, Jak zliczać odpowiedzi?
espeen
post 5.01.2006, 09:38:18
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ToPeR
post 5.01.2006, 10:31:52
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.03.2004
Skąd: N 50°03

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


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


--------------------
WARSZTAT: Apache 1.3.27 | PHP 4.3.10 | MySQL 4.1 | PHPEd 4.0 or Pajączek 5.4.0 NxG | P4 2GHz | VIA P4PB400-FL | 1024MB DDR333
PROJEKTY
Go to the top of the page
+Quote Post
espeen
post 5.01.2006, 10:36:27
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


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

Ten post edytował espeen 5.01.2006, 19:33:11
Go to the top of the page
+Quote Post
-Pai-
post 9.01.2006, 22:34:50
Post #4





Goście







A jak wygląda poprawnie działający kod?? rolleyes.gif
Go to the top of the page
+Quote Post
espeen
post 10.01.2006, 08:15:44
Post #5





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.01.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


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...
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: 19.07.2025 - 10:10