Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Quiz, zliczanie punktów dużo pytań jak zrobić to szybko
Forum PHP.pl > Forum > PHP
Lejto
Mam Quiz który składa się z 35 pytań
name pól input mam już w $_POST
  1. $q = $_POST['1'];
  2. $w= $_POST['2'];
  3. $e= $_POST['3'];
  4. $r= $_POST['4'];
  5. $t= $_POST['5'];
  6. $y= $_POST['6'];
  7. $u= $_POST['7'];
  8. $i= $_POST['8'];
  9. $o= $_POST['9'];
  10. $p= $_POST['10'];
  11. $a= $_POST['11'];
  12. $s= $_POST['12'];
  13. $d= $_POST['13'];
  14. $f = $_POST['14'];
  15. $g= $_POST['15'];
  16. $h= $_POST['16'];
  17. $j= $_POST['17'];
  18. $k= $_POST['18'];
  19. $l= $_POST['19'];
  20. $z= $_POST['20'];
  21. $x= $_POST['21'];
  22. $c= $_POST['22'];
  23. $v= $_POST['23'];
  24. $b= $_POST['24'];
  25. $n= $_POST['25'];
  26. $m= $_POST['26'];
  27. $qqq = $_POST['27'];
  28. $qq= $_POST['28'];
  29. $ww= $_POST['29'];
  30. $ee= $_POST['30'];
  31. $rr= $_POST['31'];
  32. $tt= $_POST['32'];
  33. $yy= $_POST['33'];
  34. $uu= $_POST['34'];
  35. $ii= $_POST['35'];

klucz odpowiedzi mam w bazie danych
odpowiedzi sprawdzam tak:
  1. $sql = $db->query('select * from klucz');
  2. $row = $sql->fetch_array();
  3.  
  4.  
  5. $ta = array('q','w' ,'e','r' ,
  6. 't' ,
  7. 'y' ,
  8. 'u' ,
  9. 'i' ,
  10. 'o' ,
  11. 'p' ,
  12. 'a' ,
  13. 's' ,
  14. 'd' ,
  15. 'f' ,
  16. 'g' ,
  17. 'h' ,
  18. 'j' ,
  19. 'k' ,
  20. 'l' ,
  21. 'z' ,
  22. 'x' ,
  23. 'c' ,
  24. 'v' ,
  25. 'b' ,
  26. 'n' ,
  27. 'm' ,
  28. 'qqq' ,
  29. 'qq' ,
  30. 'ww' ,
  31. 'ee' ,
  32. 'rr' ,
  33. 'tt' ,
  34. 'yy' ,
  35. 'uu' ,
  36. 'ii' );
  37.  
  38. while($row = $sql->fetch_array())
  39. {
  40.  
  41. if($ta[$row[numer]] == strtolower($row[odp]))
  42. {
  43. $punkt.$row[numer] = '2';
  44. }
  45.  
  46. }
  47.  

wyświetlać chcę tak:
  1. $suma = $punkt1+$punkt2+$punkt3+$punkt4+$punkt5+$punkt6+$punkt7+$punkt8+$punkt9+$punkt10+$punkt11+$punkt12+$punkt13+$punkt14+$punkt15+$punkt16+$punkt17+$punkt18+$punkt19+$punkt20+$punkt21+$punkt22+$punkt23+$punkt24+$punkt25+$punkt26+$punkt27+$punkt28+$punkt29+$punkt30+$punkt31+$punkt32+$punkt33+$punkt34+$punkt35;
  2. echo 'Zdobyłeś '.$suma.' punktów';

ale nie działa sad.gif
wcześniej jak miałem do każdego osobny if to było ok

Co tu zmienić?

Pozdrawiam
wookieb
A wiesz do czego służy pętla FOR? M.in do takich miejsc.
P.S Niech ludzie nie mówią tutaj o array_sum na całej tablicy bo dzięki temu ludzie będą w stanie oszukać wynik testu.
Lejto
to while zamienić na for?
wydaje mi się że z tym coś jest nie tak
  1. $punkt.$row[numer] = '2';

bo jak miałem ify do każdego z osobna to było ok

miałem błąd okazało się że tablica jest niepotrzebna
mam tak
  1. $q = $_POST['1'];
  2. $w= $_POST['2'];
  3. $e= $_POST['3'];
  4. $r= $_POST['4'];
  5. $t= $_POST['5'];
  6. $y= $_POST['6'];
  7. $u= $_POST['7'];
  8. $i= $_POST['8'];
  9. $o= $_POST['9'];
  10. $p= $_POST['10'];
  11. $a= $_POST['11'];
  12. $s= $_POST['12'];
  13. $d= $_POST['13'];
  14. $f = $_POST['14'];
  15. $g= $_POST['15'];
  16. $h= $_POST['16'];
  17. $j= $_POST['17'];
  18. $k= $_POST['18'];
  19. $l= $_POST['19'];
  20. $z= $_POST['20'];
  21. $x= $_POST['21'];
  22. $c= $_POST['22'];
  23. $v= $_POST['23'];
  24. $b= $_POST['24'];
  25. $n= $_POST['25'];
  26. $m= $_POST['26'];
  27. $qqq = $_POST['27'];
  28. $qq= $_POST['28'];
  29. $ww= $_POST['29'];
  30. $ee= $_POST['30'];
  31. $rr= $_POST['31'];
  32. $tt= $_POST['32'];
  33. $yy= $_POST['33'];
  34. $uu= $_POST['34'];
  35. $ii= $_POST['35'];
  36.  
  37.  
  38. $sql = $db->query('select * from klucz');
  39.  
  40. $rows = $sql->num_rows;
  41.  
  42.  
  43. $ta = array('','q','w' ,'e','r' ,
  44. 't' ,
  45. 'y' ,
  46. 'u' ,
  47. 'i' ,
  48. 'o' ,
  49. 'p' ,
  50. 'a' ,
  51. 's' ,
  52. 'd' ,
  53. 'f' ,
  54. 'g' ,
  55. 'h' ,
  56. 'j' ,
  57. 'k' ,
  58. 'l' ,
  59. 'z' ,
  60. 'x' ,
  61. 'c' ,
  62. 'v' ,
  63. 'b' ,
  64. 'n' ,
  65. 'm' ,
  66. 'qqq' ,
  67. 'qq' ,
  68. 'ww' ,
  69. 'ee' ,
  70. 'rr' ,
  71. 'tt' ,
  72. 'yy' ,
  73. 'uu' ,
  74. 'ii' );
  75.  
  76. for($i=0; $i < $rows; $i++)
  77. {
  78. $row = $sql->fetch_array();
  79.  
  80.  
  81. if($_POST[$row[numer]] == strtolower($row[odp]))
  82. {
  83. $o = $punkt.$row[numer] = '2';
  84.  
  85. }
  86.  
  87.  
  88. }

ale nie wiem teraz jak zliczyć $o udzieliłem 2 poprawnych odpowiedzi zrobiłem echo $o za pętlą dostałem 2 zrobiłem echo w pętli dostałem 22 jak z sumować?

jak sumować te dane co są w pętli? sad.gif
czy coś źle zrobiłem

powstaje if na post['q'] jeśli równa się a (pobrane z bazy) to 2 punkty i tak dalej, nie wiem jak sumować to próbowałem tworzyć wiele zmiennych $punkt.$row[numer] i potem $punk1 itp ale to chyba nie zda egzaminu.
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.