Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]quiz
masterbx2
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 1.04.2011

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


próbuje zrobic cos w rodzaju quizu na stronke.

mam tabele pytania a w niej

id
pytanie
odpowiedz

chce teraz wyswietlic losowe pytanie i 4 losowe odpowiedzi w czym jedna jest prawidlowa

jak sie do tego najlepiej zabrac?

probowalem miedzy innymi tak:

  1. $query = mysql_query("SELECT pytanie, odpowiedz FROM pytania ORDER BY rand() LIMIT 4");
  2. while($row = mysql_fetch_assoc($query))
  3. {
  4. echo $row['pytanie'];
  5. echo $row['odpowiedz'];
  6.  
  7. }


ale nie wiem jak wtedy ustawic z osobna limity na pytania i odpoweidzi bo w tem sposob mam z kazdego po 4 :/
Go to the top of the page
+Quote Post
tolomei
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Myślę, że powinieneś najpierw przebudować swoją bazę.
Ciężko sobie wyobrazić jak tam upchałeś pytanie i 4 odpowiedzi smile.gif


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
kill15
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 14
Dołączył: 21.12.2010

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


Cytat(tolomei @ 10.05.2011, 02:23:12 ) *
Myślę, że powinieneś najpierw przebudować swoją bazę.
Ciężko sobie wyobrazić jak tam upchałeś pytanie i 4 odpowiedzi smile.gif


mógłby w polu odpowiedzi zrobić 4 odpowiedzi np dając przecinek pomiędzy nimi a potem zrobić tablice z tego dzięki przecinkowi.
Ale myślę że najprościej to zrobić:

id
pytanie
prawdziwa
falszywa
falszywa2
falszywa3

potem tylko sprawdza warunkiem czy zaznaczona odpowiedz równa jest wartości z pola prawdziwa snitch.gif

Jeżeli by chciał to mógłby nawet osobną tabele zrobić na odpowiedzi snitch.gif
wyglądało by to np tak
id
odpowiedz - jej tresc
pytanie - id pytania
prawda - liczba np 1 oznaczała by że to jest poprawna odpowiedź ;>

Sam wybierz snitch.gif
Możliwości wiele jest sam wybierz jak to zrobisz.

Ten post edytował kill15 10.05.2011, 08:12:14
Go to the top of the page
+Quote Post
masterbx2
post
Post #4





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 1.04.2011

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


Cytat(tolomei @ 10.05.2011, 02:23:12 ) *
Myślę, że powinieneś najpierw przebudować swoją bazę.
Ciężko sobie wyobrazić jak tam upchałeś pytanie i 4 odpowiedzi smile.gif



troszke zle zrozumiales

w tabeli mam

1 pytanie = 1 odpowiedz,

chcialem zrobic tak aby wyswietlala sie 4 wiersze przy czym jeden ma by pytanie + prawidlowa odpowiedz, 3 pozostale to losowe bledne odpowiedzi.

@kill15

dzieki moze masz w sumie racje rozdzielenie tabeli byloby chyba najlepszym rozwiazaniem
Go to the top of the page
+Quote Post
kill15
post
Post #5





Grupa: Zarejestrowani
Postów: 184
Pomógł: 14
Dołączył: 21.12.2010

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


Ah rozumiem Cie snitch.gif
No ale i tak możesz zrobić to tak jak mówiłem lub troszke inaczej tzn:

tabela pytania:
id
pytanie
odpowiedz

tabela błędne:
id
odp

i ew jezeli chcesz mieć ciągle te same możliwości odpowiedzi do pytania to zrób jak mówiłem w blednych: id_pytania
Go to the top of the page
+Quote Post
Ghostbusters
post
Post #6





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.12.2014

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


Cytat(kill15 @ 10.05.2011, 11:01:58 ) *
tabela pytania:
id
pytanie
odpowiedz

tabela błędne:
id
odp

i ew jezeli chcesz mieć ciągle te same możliwości odpowiedzi do pytania to zrób jak mówiłem w blednych: id_pytania


Jeżeli tak zrobisz, obciążysz baze niepotrzebnymi danymi.
Zauwaz, że dla kazdej tabeli PYTANIA bedziesz musiał stworzyc tabele ODPOWIEDZI.

Zamiast zrobić jedną tabele QUIZ, w której umieścisz kolumny: ID, pytanie, odpowiedź

A skrypt będzie pobieral odpowiedni rekord jako pytanie np.:

ID=1, pytanie,

odpowiedziami będą losowo wybrane rekordy z tym, że jeden z rekordów będzie tym samym rekordem co w pytaniu:

ID=1, odpowiedź
ID=2, odpowiedź
ID3, odpowiedź
ID=4, odpowiedź


Czyli zamiast ładować dodatkowe tabele, do odpowiedzi będą dobrane dodatkowe 3 rekordy, które będą wybrane losowo np. sąsiednie rekordy.


Wolałbym rowinąć wątek, który zaczął masterbx2.

Dobrze myśli tylko nie wie jak to zrobić w PHP + MySQL.

Na coś takiego chciałbym znać odpowieź mądrą.

To samo tyczy sie Twojego wczesniejszego pomysłu:

id
pytanie
prawdziwa
falszywa
falszywa2
falszywa3

Wyobraź sobie teraz, gdybyś miał w bazie 1000 rekordów (ID, pytanie, odpowiedź) i do każdego rekodu musiał dodać dodatkowe 3 kolumny, dodatkowe 3 wartości.

A tak, to masz tylko pytanie i odpowiedź.
Pytanie porównujesz z 4 odpowiedziami, przy czym 3 z nich są losowe.



Ten post edytował Ghostbusters 31.12.2014, 15:22:03
Go to the top of the page
+Quote Post
maviozo
post
Post #7





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

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


Moim skromnym zdaniem wersja z 4 kolumnami i pytaniem jednak ma sens, dlatego, że losowe niewłaściwe odpowiedzi mogą zupełnie nie pasować do pytania, tzn. nie pozostawiające nawet cienia wątpliwości.
Gdyby się jednak upierać, to zrobiłbym dwie tabele
id
pytanie
id_poprawnej_odpowiedzi

oraz tabela z listą wszystkich odpowiedzi.
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 Aktualny czas: 21.08.2025 - 03:16