Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: quiz
Forum PHP.pl > Forum > PHP
adi23
Chce napisać cos w rodzaju quizu - sprawdzenia wiadomości. Poszukuje sposobu rozwiązania. Chce zeby pytania i odpowiedzi przechowywane były w bazie mysql. Za każdym razem z pośród wszystkich pytań losowanych klikanaście no i zliczane dobre odpowiedzi. w jaki sposob to rozwiązać?
Spawnm
hmmm np chcesz dac 5 losowych pytan wiec np:
w while() dajesz rand(), rand losuje losoą liczbe (id z bazy) potem nadal w while zadajesz pytanie i pobierasz pytanie z id z rand()
zostaje pobrane tyle tytan na ile ustawiles pętle:)
reszta to sprawa formularza.
adi23
z iloscia pytan poradzilem sobie w taki sposob
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM quiz ORDER BY RAND() LIMIT 3;");
  3. ?>


zrobilem wyswieltenie pytan while
  1. <?php
  2. echo '<form method="post" action="sprawdz.php" >';
  3. while($wynik = mysql_fetch_array($link)) 
  4. {
  5. echo $i; //numer pytania
  6. echo $wynik['pytanie'].'<br>'; //tresc pytania
  7. echo '<input type="radio" name='.$wynik['id'].' value="odp1">'.$wynik['odp1'].'<br>';
  8. echo '<input type="radio" name='.$wynik['id'].' value="odp2">'.$wynik['odp2'].'<br>';
  9. echo '<input type="radio" name='.$wynik['id'].' value="odp3">'.$wynik['odp3'].'<br>';
  10. $i++;
  11. }
  12. echo '<input type="submit" VALUE="sprawdz wynik">';
  13. echo '</form>';
  14. ?>


i teraz jak sprawdzic czy prawidlowe odp jest zaznaczone
tabela wyglada tak:
pole pytanie - tresc pytania
pole odp1, odp2, odp3 - tresci odpowiedzi
pole ok zaiwera np odp1 jesli odp ta jest prawidlowa

  1. CREATE TABLE `quiz` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `pytanie` text NOT NULL,
  4. `odp1` text NOT NULL,
  5. `odp2` text NOT NULL,
  6. `odp3` text NOT NULL,
  7. `ok` text NOT NULL,
  8. PRIMARY KEY (`id`)
  9. )


taki mialem pomysl na tabele nie wiem czy najlepszy czy najgorszy
Spawnm
w ok nie dawaj odpowiedzi tylko id odp z tych 3 do wyboru.
jak ktos wybiera odpowiedz to z tego co widze przesylasz id odp, porownujesz je z tym z ok jesli id są takie same zgadl,
jesli nie to ma pecha czarodziej.gif
adi23
Jakos nie do konca rozumiem.
Mozna dokladniej wytlumaczyc?
Crozin
Sprzydały by się 3 tabele w bazie

1) Tabela z quizem
Kod
ID - id quizu
tytul
opis - jakies 'dodatkowe' pola
2) Tabela z pytaniami:
Kod
ID - id pytania
quizID - id quizu z 1szej tabeli
pytanie - tresc samego pytania
3) Tabela z odpowiedziami:
Kod
ID - id odpowiedzi
pytanieID - id pytania
odpowiedz - tresc odpowiedzi
poprawna - czy odpowiedź jest poprawna (1 - tak, 0 - nie)

Mając ID quizu (z adresu) wybierasz dane z tabeli #1 gdzie ID = $_GET['id'], dane z tabeli 2giej gdzie tabela2.ID = tabela1.ID oraz z trzeciej gdzie tabela3.pytanieID = tabela2.ID

I teraz pozostaje kwestia wyświetlenia danych w takim formacie:
Kod
<form action="..." method="post">
  Dla każdego pytania{
    [tresc pytania]
            Dla każdej odpowiedzi{
        <input type="radio" name="p_tabela3.pytanieID" value="tabela3.ID" /> tabela3.odpowiedz
            }
  }
</form>
adi23
z tymi trzema tabelami to sie zakrecilem jak denko od sloiczka.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.