Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> quiz, sposób rozwiązania
adi23
post 31.03.2008, 10:43:29
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.03.2008

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


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ć?

Ten post edytował adi23 31.03.2008, 12:08:10
Go to the top of the page
+Quote Post
Spawnm
post 31.03.2008, 12:30:37
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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.
Go to the top of the page
+Quote Post
adi23
post 31.03.2008, 12:59:41
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.03.2008

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


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

Ten post edytował adi23 31.03.2008, 13:35:17
Go to the top of the page
+Quote Post
Spawnm
post 31.03.2008, 14:14:30
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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

Ten post edytował Łaktus 31.03.2008, 14:15:16
Go to the top of the page
+Quote Post
adi23
post 31.03.2008, 14:30:04
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.03.2008

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


Jakos nie do konca rozumiem.
Mozna dokladniej wytlumaczyc?
Go to the top of the page
+Quote Post
Crozin
post 31.03.2008, 14:44:56
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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>


Ten post edytował Crozin 31.03.2008, 14:45:33
Go to the top of the page
+Quote Post
adi23
post 31.03.2008, 16:01:36
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.03.2008

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


z tymi trzema tabelami to sie zakrecilem jak denko od sloiczka.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 08:23