Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sprawdzenie poprawności odpowiedzi w teście
piasektubyl
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 26.03.2013

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


Witam!
Zacznę od tego, że ostatnie zadanie jakie dał mi mój boss z aplikacji jest zrobienie testu. Idę na łatwiznę i robię go tylko na jedną poprawną odpowiedź (IMG:style_emoticons/default/smile.gif)
Do rzeczy... Baza danych w mysql ma zawierać treść pytania, odpowiedzi i kolumnę z odpowiedziami poprawnymi(Ja zrobiłem rekordy tj. Id, Tresc, Odp_a, Odp_b, Odp_c, Popr_Odp). W bazie zawierać ma się w około 30 pytań, z których wylosuje 20 i wyświetli.

  1. <?php
  2.  
  3. require "config.php";
  4. connect();
  5.  
  6. ?>
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  10. <title>Teścik</title>
  11. </head>
  12. <body>
  13. <br /><br />
  14. <form method="post" action="">
  15. <?php
  16.  
  17. $wynik = mysql_query("SELECT * FROM pytania ORDER BY RAND() LIMIT 2") or die('Błąd zapytania');
  18.  
  19. echo "<table cellpadding=2 border=0>";
  20.  
  21. while($r = mysql_fetch_array($wynik)) {
  22. echo "<tr>";
  23. echo "<td>".$r[1]."</td>";
  24. echo "</tr><tr><td><input type=\"radio\" name=\"r".$r['Id']."\" value=\"a\"/>".$r[2]."</td>";
  25. echo "</tr><tr><td><input type=\"radio\" name=\"r".$r['Id']."\" value=\"b\"/>".$r[3]."</td>";
  26. echo "</tr><tr><td><input type=\"radio\" name=\"r".$r['Id']."\" value=\"c\"/>".$r[4]."</td>";
  27. echo "</tr>";
  28. }
  29. echo "</table>
  30. <br />
  31. <input type=\"submit\" name=\"check\" value=\"Wyślij\"> ";
  32.  
  33. ?>
  34. </form>
  35. </body>
  36. </html>


Ten oto kodzik ładnie wyświetla mi 2 pytania (tak 2, a nie 20, bo moja baza danych na razie ma 4 pytania ). Każde pole input otrzymuje name w postaci [r+id z bazy pytań] i na sztywno sprawdzanie poprawnych odpowiedzi zrobiłbym takim kodem:

  1.  
  2.  
  3. if(isset($_POST['check']))
  4. {
  5.  
  6. $pkt=0;
  7. if($_POST['r1'] == 'a')
  8. $pkt++;
  9. if($_POST['r2'] == 'b')
  10. $pkt++;
  11.  
  12. echo "<br />Zdobyłeś <b style=\"color: red\">".$pkt."</b> punktów, bądź teraz dumny!";
  13.  
  14. }


Ewentualnie znalazłem rozwiązanie gdzie mogę zapisać odpowiedzi do pliku i z niego wczytywać. Porównywać z Id pytania i reasumować, wtedy usunął bym tą ostatnią kolumnę z bazy(Popr_Odp) i wsio. Jednak boss nie przystał na takie rozwiązanie i trzyma się w tym co napisałem na początku, że mam użyć do tego bazy danych. Każde moje rozwiązanie kończy się fiaskiem, żałuję że nie słuchałem go na wszystkich lekcjach (IMG:style_emoticons/default/smile.gif)
Tak sobie pomyślałem, że mógłbym takim czymś:

  1. $wynik = mysql_query("SELECT * FROM pytania ") or die('Błąd zapytania');
  2. while($r = mysql_fetch_array($wynik)) {
  3. echo $r[5];
  4. }


Wypisać wszystkie poprawne odpowiedzi (oczywiście dałbym je w hiddenie, tylko na szybko napisałem od razu zmienną) i później może jakoś je porównać...
Nei wiem... potrzebowałbym pomocy jak to zrobić

Ten post edytował piasektubyl 26.03.2013, 10:39:13
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.12.2025 - 23:27