Próbuję utworzyć prosty quiz z podziałem pytań na kilka kategorii użytkowników. Powiedzmy przywileje 1,2,3 dają różny zbiór pytań dodatkowych. Wiem, że mogę utworzyć to na tabelach pytanie i odpowiedź dla 1 pytanie i odpowiedź dla 2 i je wyświetlać odpowiednio, aczkolwiek chciałbym zrobić to przy użyciu inner join. Prosta metoda GET czyli w pasku adresu dawałbym informacje o danym użytkowniku. Tabele wyglądałyby następująco:
Pytanie:
nr_pyt
tresc_pytania
odp_1
odp_2
odp_3
Odpowiedź:
nr_odp
odp_1
odp_2
odp_3
Pytania1:
odp_1
odp_2
odp_3
Pytania2:
odp_1
odp_2
odp_3
I teraz pytanie jak współdzielić id pytania tak aby nie tworzyć dodadkowych tabel typu OdpowiedzPytania1.
Aktualne rozwiązanie z dwoma tabelami
? Quiz.php <div id="mybody"> <div id="textmybody"> <h1>Test kompetencji</h1> <form action="wyniki.php" method="post"> <?php $sql = "SELECT pytania.nr_pyt, pytania.zapytanie, pytania.odp_1, pytania.odp_2, pytania.odp_3, odpowiedzi.odp_1, odpowiedzi.odp_2, odpowiedzi.odp_3, odpowiedzi.odp_tag FROM pytania, odpowiedzi WHERE pytania.nr_pyt = odpowiedzi.nr_odp"; echo "<b>Pytanie $data[0]: $data[1] </b><br> <input type='radio' name='$data[8]' value='$data[5]'>$data[2]<br> <input type='radio' name='$data[8]' value='$data[6]'>$data[3]<br> <input type='radio' name='$data[8]' value='$data[7]'>$data[4]<br>";}?><br> <input type="submit" value="Sprawdź wyniki!"> </form> </div> ? wyniki.php <?php $score = 0; if ($_POST['q1'] == 'yes') $score++; if ($_POST['q2'] == 'yes') $score++; if ($_POST['q3'] == 'yes') $score++; if ($_POST['q4'] == 'yes') $score++; ?> <div id="mybody"> <div id="textmybody"> <h1>Twój wynik:</h1> <?php if ($score < 2) else if ($score == 4) else if ($_POST['q1'] == 'no') if ($_POST['q2'] == 'no') if ($_POST['q3'] == 'no') if ($_POST['q4'] == 'no') ?> </div> </div>