Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> quiz z użyciem mysql/php - jak to zrobić?
qrzysztof
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 19
Dołączył: 25.04.2009

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


Witam, mam następujący problem. Chciałbym zrobić quiz, w którym każde pytanie miałoby przynajmniej jedną (ale nie maksymalnie) dobrą odpowiedź).

Na przykład w quizie ze znajomości angielskiego dane mogłyby wyglądać tak:

--------------------------------------------------------------------------
Pytanie: rzucać, Odpowiedź: to throw lub to cast
Pytanie: śpiewać, Odpowiedź: to sing
Pytanie: malować, Odpowiedź: to paint
Pytanie: kupić: Odpowiedź: to buy lub to purchase lub to get
--------------------------------------------------------------------------

Przykład może nieco naciągany, ale chodziło mi tylko o pokazanie idei.

Doszedłem do wniosku, że najlepiej (najefektywniej) będzie przechowywać te dane w bazie w następującej postaci:

ID-----Pytanie-----------Odpowiedź

1------rzucać-------------to throw
2------rzucać-------------to cast
3------śpiewać-----------to sing
4... itd.

Czyli każda kombinacja pytanie/odpowiedź w osobnym rekordzie tej samej tabeli. Według mnie to najlepszy pomysł, ale jako że stawiam pierwsze kroki to bardzo możliwe, że się mylę.

Chciałbym to teraz wyciągnąć z tej tabeli do zmiennej PHP w jakiejś łatwej do obsługi postaci. Najlepiej tak, żeby pytania się nie powtarzały a odpowiedzi nie poginęły.

Bo mogę sobie na przykład zrobić:

Kod
SELECT * FROM tabela


Wtedy pytania będą się powtarzać. Mogę taką tablicę obrobić potem w PHP, ale wydaje mi się to mało efektywne (najlepiej chyba aby jak najwięcej pracowała przy tym baza). Jak z kolei dam:

Kod
SELECT * FROM tabela GROUP by Pytanie


to poginą mi odpowiedzi.

A może w dwóch tabelach to jakoś rozmieścić, porobić jakieś złączenia? Znam już podstawy SQL i PHP, brakuje mi po prostu wyobraźni, jak to najefektywniej "rozegrać". Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bounty
post
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 9
Dołączył: 12.04.2009
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Tabela może wygladac tak :
tabela pyt_i_odp

Pytanie | Odpowiedz
---------------------------
2+2 | 4
---------------------------
4*5 | 20

W php
Kod
<?php
$q = "SELECT * from pyt_i_odp Where Pytanie='$pytanie' and Odpowiedz = '$odpowiedz'";
$result = mysql_query($q);
if(mysql_fetch_assoc($result)){
echo'odpowiedz poprawna';
} else {
echo'zla odpowiedz !';
}
?>

Oczwiscie aby baza nie zajmowala za duzo mozesz zrobic tabele z id pytania i id odpowiedzi a nastepnie porównac wysylajac w formularzu id zadanego pytania i id opwiedzi nastepnie sprubowac wyciagnac jakis rekord z bazy gdzie id pytania jest równe id odpowiedzi jezeli wyciagnie jakis reekord to odpowiedz jest poprawna

Ten post edytował bounty 25.04.2009, 13:30:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 21:13