Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> TEST, TEST WIELOKROTNEGO WYBORU-POMOCY
padalec
post 10.02.2005, 19:12:09
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.02.2005

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


Czesc mam problem!!!!

Napisalem skrypcik testu wielokrotnego wyboru no i jest z nim maly problem jak wybierasz odpowiedz to nie jest ona zapisywana w tablicy.Zostaje zapisana tylko odp. ostatnia.PS jest to test wielokrotnego wyboru a wiec uzytkownik moze wybrac kilka odp. no i z tym mam tez problem bardzo prosze o pomoc wysalam wraz z listem ten skrypcik

Za pomoc z góry dziekuje!!!

aaevil.gif



//ta zmienna jest inicjowana gdy odpowiadamy na ostatnie pytanie
  1. <?php
  2.  
  3. if(!isset($koniec)&&($koniec!='koniec'))
  4. {
  5. global $biezace_pytanie;
  6. if(!lacz_bd()) echo &#092;"Nie mozna polaczyc sie z baza danych MySQL:\".mysql_error;
  7. $wynik=@mysql_query(&#092;"SELECT * FROM $pytania\"); 
  8. $pytania=wynik_bd_do_tablicy($wynik);
  9. $liczba_wyswietlanych_pytan=1;
  10. $liczba_pytan=count($pytania);
  11. if(!$biezace_pytanie)$biezace_pytanie=1;
  12. if(!$liczba_pytan)$liczba_stron=1;
  13. else $liczba_stron=ceil($liczba_pytan/$liczba_wyswietlanych_pytan);
  14. if($bierzace_pytanie>=$liczba_stron)$biezace_pytanie=$liczba_stron;
  15. $numer_poczadkowy=($biezace_pytanie-1)*$liczba_wyswietlanych_pytan;
  16. $numer_koncowy=$biezace_pytanie*$liczba_wyswietlanych_pytan;
  17. if($numer_koncowy > $liczba_pytan)$numer_koncowy=$liczba_pytan;
  18. echo &#092;"
    1. <form method=\"post\" action=\"\".$_SERVER['PHP_SELF'].\"\">
    \";
  19. echo &#092;"
    1. <table border=\"0\">
    \";
  20. $user_answer=$_SESSION['user_answer'];
  21.  
  22. for($i=$numer_poczadkowy;$i<$numer_koncowy;$i++)
  23. {
  24. echo <<<[HTML]
  25. <tr><td>Pytanie:$biezace_pytanie/$liczba_pytan</td></tr>
  26. <tr><td colspan=&#092;"3\"><br><b>$pytania[$i][question]</b></td></tr>
  27. <tr>
  28. //tutaj wyswietlamy mozliwe odpowiedzi na pytanie opt-sa to odpowiedzi w bazie danych
  29. <td>$pytania[$i][opt1]<input type=&#092;"checkbox\" name=user_answer value=\"$pytania[$i][opt1]\"></td>
  30. <td>$pytania[$i][opt2]<input type=&#092;"checkbox\" name=user_answer value=\"$pytania[$i][opt2]\"></td>
  31. <td>$pytania[$i][opt3]<input type=&#092;"checkbox\" name=user_answer value=\"$pytania[$i][opt3]\"></td>
  32. </tr>
  33. </table>
  34. [/HTML]
  35. }
  36. for($i=1;$i<=$liczba_stron;$i++)
  37. {
  38. if($biezace_pytanie==$liczba_stron)
  39. { 
  40. echo &#092;"
    1. <input type='hidden' name='koniec' value='koniec'>
    \";
  41. }
  42. else
  43. {
  44. echo '
    1. <input type=<span class="es0">\"</span>hidden<span class="es0">\"</span> name=<span class="es0">\"</span>biezace_pytanie<span class="es0">\"</span> value=<span class="es0">\"</span>'</span><span class="sy0">.</span><span class="re0">$i</span><span class="sy0">.</span><span class="st0">'<span class="es0">\"</span>>
    '
    ;
  45. }
  46. echo '
    1. <input type=<span class="es0">\"</span>submit<span class="es0">\"</span> value=<span class="es0">\"</span>Zapisz odpowiedzi<span class="es0">\"</span> name=<span class="es0">\"</span>submit<span class="es0">\"</span>>
    '
    ;
  47. echo '
    1. </form>
    '
    ;
  48. }
  49. elseif(isset($koniec)&&($koniec=='koniec'))
  50. {
  51. if(!lacz_bd()) echo &#092;"Nie mozna polaczyc sie z baza danych MySQL:\".mysql_error;
  52. $display = mysql_query(&#092;"SELECT * FROM $pytania ORDER BY id\");
  53. $score = 0;
  54. $total = mysql_num_rows($display);
  55. $nr=0;
  56. while ($result = mysql_fetch_array($display)) 
  57. {
  58. $answer = $result[&#092;"answer\"];
  59. $q = $result[&#092;"q\"];
  60. if ($user_answer == $answer)
  61. {
  62. $score++; 
  63. }
  64. }
  65. echo &#092;"
    1. <p align=center><b>Oto twój wynik $score / $total</b></p>
    \";
  66. echo &#092;"
    1. <p>
    \";
  67. if ($score == $total) 
  68. {
  69. echo &#092;"Moje gratulacje! Wszyzdkie odpowiedzi s&plusmn; poprawne!\";
  70. }
  71. elseif ($score/$total < 0.34) 
  72. {
  73. echo &#092;"Niestety. Niejet to dobry wynik, ale nieprzejmuj sie możesz spróbować jeszc
    z
  74.  raz\";
  75. }
  76. elseif ($score/$total > 0.67) 
  77. {
  78. echo \"Dobra robota! Całkiem nuiezły wynik.\";
  79. }
  80. else 
  81. {
  82. echo \"Bardzo słabo - sprobuj jeszcze raz!\";
  83. }
  84. echo \"[HTML]</p>[/HTML]\";
  85. echo \"[HTML]<p>Oto twoje odpowiedzi:\";
  86. echo \"[HTML]<table border=class='tabela'>[/HTML]\";
  87.  
  88. echo\"[HTML]<tr><td><>ID:</td><td>PYTANIE:</td><td>POPRAWNA ODPOWIEDZ:</></td><td>TWOJE ODPOWIEDZI:</></td><td></>WYNIK:</td></tr>[/HTML]\";
  89.  
  90. $display =@mysql_query(\"SELECT * FROM $pytania ORDER BY id\");
  91.  
  92. while ($row = mysql_fetch_array($display))
  93. {
  94. $id=$row['id'];
  95. $question = $row[\"question\"];
  96. $answer = $row[\"answer\"];
  97. $q = $row[\"q\"];
  98. echo \"[HTML]<tr><td>$id<td><br>$question</td><td><font color='#4286f4'>$answer</font></td>[/HTML]\";
  99. if ($user_answer == $answer)
  100. {
  101. echo \"[HTML]<td><font color='red'>{$user_answer}</font></td><td><font color='green'>POPRAWNE</font></td></tr>[/HTML]\";
  102. }
  103. elseif ($user_answer == \"\")
  104. {
  105. echo \"[HTML]<td><font color='red'>Nie wybrales zadnej odpowiedzi</font></td><td><font color='red'>NIEPOPRAWNE</font></td></tr>\"[/HTML];
  106. }
  107. else
  108. {
  109. echo \"[HTML]<td><font color='red'>{$user_answer}</font></td><td><font color='red'>NIEPOPRAWNE</font></td></tr>[/HTML]\";
  110. }
  111. }
  112. echo \"[HTML]</table></p>[/HTML]\"
  113. }
  114. }
  115. }
  116.  
  117. ?>


Ten post edytował padalec 10.02.2005, 21:17:07
Go to the top of the page
+Quote Post
Vertical
post 10.02.2005, 19:17:24
Post #2





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Niedość, że skrypt jest bardzo długi to jeszcze nieczytelny. Użyj Tagu php exclamation.gif
Go to the top of the page
+Quote Post
aleksander
post 10.02.2005, 19:30:47
Post #3





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


zastosuj bbcode i skróć skrypt, ewentualnie podaj zewnętrzny link do źródła. W przeciwnym razie zamknę topic.

Go to the top of the page
+Quote Post
Kuziu
post 10.02.2005, 23:10:43
Post #4





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


zamiast
  1. name=user_answer
wstaw
  1. name=user_answer[]

A powstanie Ci tablica wyników


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
padalec
post 11.02.2005, 15:54:45
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.02.2005

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


Zrobilem tak i w tablicy zapisywane sa tylko ostatnie odp. na pytanie:-(
Go to the top of the page
+Quote Post
Kuziu
post 11.02.2005, 16:16:33
Post #6





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Jak dodasz [] to w php masz tablice i odwołujesz się do niej kolejno

  1. <?php
  2.  
  3. $user_answer[0];
  4. $user_answer[1];
  5. $user_answer[2];
  6. .
  7. .
  8. .
  9.  
  10. ?>


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
padalec
post 14.02.2005, 00:18:43
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.02.2005

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


Zrobiłe tak:
W petli dodalem:
  1. user_answer1[$i]
  2. user_answer2[$i]
  3. user_answer3[$i]

I puzniej jak wyswietlam pytania w taki sposob:
  1. <?php
  2.  
  3. $user_answer1=$_POST['user_answer1'];
  4. $user_answer2=$_POST['user_answer2'];
  5. $user_answer3=$_POST['user_answer3'];
  6.  
  7. ?>

No i w koncu jak wyswietlam odpowiedzi(zakladam ze sa 2 pytania):
  1. <?php
  2.  
  3. echo &#092;"ODP1 pytanie1=\".$user_answer1[0];
  4. echo &#092;"ODP1 pytanie1=\".$user_answer1[0];
  5. echo &#092;"ODP1 pytanie1=\".$user_answer1[0];
  6. echo &#092;"ODP1 pytanie2=\".$user_answer1[1];
  7. echo &#092;"ODP2 pytanie2=\".$user_answer1[1];
  8. echo &#092;"ODP3 pytanie2=\".$user_answer1[1];
  9.  
  10. ?>

Dostaje w odpowiedzi:
ODP1 pytanie1=
ODP2 pytanie1=
ODP3 pytanie1=
ODP1 pytanie2=odp. jaką dał uzytkownik
ODP2 pytanie2=odp. jaką dał uzytkownik
ODP3 pytanie2=odp. jaką dał uzytkownik
Dlaczeko tak zapisuje i jak to zrobic aby bylo prawidlowo?questionmark.gif sadsmiley02.gif aaevil.gif
Go to the top of the page
+Quote Post
Kuziu
post 14.02.2005, 02:11:16
Post #8





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Plik form.html
  1. <form method=post action=form.php>
  2. <input type=text name=pole[]>
  3. <input type=text name=pole[]>
  4. <input type=text name=pole[]>
  5. <input type=text name=pole[]>
  6. <input type=submit name=submit>
  7. </form>


Plik form.php
  1. <?
  2. echo($_POST['pole']['0']);
  3. echo($_POST['pole']['1']);
  4. echo($_POST['pole']['2']);
  5. echo($_POST['pole']['3']);
  6. ?>


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
padalec
post 14.02.2005, 11:50:45
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.02.2005

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


Jest jeszcze jeden mały problem z pętlą ponieważ jak dodaj więcej niz 2 pytania to po odpowiedzeniu na pierwsze przeskakuje mi do ostatniego sad.gif
Noi zrobiłem tak jak muwił Kuziu ale zapisuja sie tylko odp. na ostatnie pytanie sad.gif

Ten post edytował padalec 14.02.2005, 15:12:23
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: 18.06.2025 - 10:31