Witam!
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
echo '<b>Twój wynik to:! ' . $score . '/4</b><br><br>'; if ($score < 2)
echo 'Radzę wrócić do lekcji!</br></br>'; else if ($score == 4)
echo 'Świetnie!</br></br>'; else
if ($_POST['q1'] == 'no')
echo '</br>Prawidłowa odpowiedź na pytanie pierwsze: 5'; if ($_POST['q2'] == 'no')
echo '</br>Prawidłowa odpowiedź na pytanie drugie: 1,5 km2'; if ($_POST['q3'] == 'no')
echo '</br>Prawidłowa odpowiedź na pytanie trzecie: Vasco da Gama'; if ($_POST['q4'] == 'no')
echo '</br>Prawidłowa odpowiedź na pytanie czwarte: gubernatora generalnego oraz biskupstwa'; ?>
</div>
</div>
Ten post edytował NajpierwSieNaucz 25.08.2014, 14:14:12