Witam Wszystkich Serdecznie,

czy może mi ktoś podpowiedzieć jak w poniższym wypadku sprawdzić czy na dane pytanie zostały udzielone wszystkie prawidłowe odpowiedzi questionmark.gif

Poniżej kod sprawdzający i tabela przechowująca odpowiedzi do testu.

  1. CREATE TABLE IF NOT EXISTS `test_odpowiedzi` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `id_testu` int(11) NOT NULL,
  4. `nr_pytania` varchar(4) COLLATE utf8_polish_ci NOT NULL,
  5. `nr_odpowiedzi` varchar(4) COLLATE utf8_polish_ci NOT NULL,
  6. `tresc_odpowiedzi` tinytext COLLATE utf8_polish_ci NOT NULL,
  7. `prawidlowa` varchar(2) COLLATE utf8_polish_ci NOT NULL,
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


Przykładowa wartość pola nr_odpowiedzi to 1a1 (1 - nr pytania, a - pełni funkcję spacji, 1 nr odpowiedzi).

Poniższy kod działa świetnie dla 1 prawidłowej odpowiedzi w teście a nie mam w ogóle pomysłu jak zrobić dla kilku.
  1. if (isset($_POST['submit']))
  2. {
  3. $ile_dobrych=0;
  4. $ile_zlych=0;
  5. $nr_testu = $_POST["nr_testu"];
  6. $odpowiedz = $_POST["odpowiedz"];
  7. $spr_rek = @mysql_query("SELECT COUNT(*) FROM test_odpowiedzi WHERE id_testu='$nr_testu' AND prawidlowa='t'");
  8. $ile_prawidlowy = mysql_fetch_array ($spr_rek);
  9. foreach ($odpowiedz as $o) {
  10. $rek = @mysql_query("SELECT * FROM test_odpowiedzi WHERE id_testu='$nr_testu' AND nr_odpowiedzi='$o' AND prawidlowa='t' LIMIT 1");
  11. $num = mysql_num_rows($rek);
  12. if ($num == 1)
  13. {
  14. $ile_dobrych++;
  15. echo "odpowiedż poprawna<br />";
  16. }
  17. if ($num == 0)
  18. {
  19. $ile_zlych++;
  20. echo "odpowiedż błędna<br />";
  21. }
  22. }


Z góry dziękuję za pomoc.