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. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 19 Dołączył: 25.04.2009 Ostrzeżenie: (0%)
|
Odbierasz dane od użytkownika i zapisujesz np. Kod $zmienna = $_POST['pierwszy'].';'.$_POST['drugi']; Obok jeszcze czy to poprawna odpowiedź czy nie, za pomocą checkbox'ów. Z tą wrażliwością na ; chodziło mi o to co się stanie jeśli w edytorze w podanej odpowiedzi znajdzie się ten znak (teoretycznie jest taka możliwość, bo tematyka quizów ma być różnoraka) - wtedy może to "rozwalić" tablicę odpowiedzi. A checkboxy są niepotrzebne bo użytkownik podaje tylko poprawne odpowiedzi (test otwarty, nie wyboru). --------------- W sumie fifi rozwiązał już 95% mojego problemu. Pozostaje tylko kwestia, jak zrobić ten zapis do bazy + explode tak, aby zminimalizować (albo najlepiej uniknąć w ogóle) błędu przy wprowadzeniu przez użytkownika do odpowiedzi (na etapie edycji) krytycznego znaku (tego, którego używamy w bazie do rozdzielenia odpowiedzi i w explode). Średnik wydaje mi się jednak zbyt popularny. Może | lepiej? Albo znak tabulacji/entera. Tu też jednak może być pewna wrażliwość jeśli ktoś wpisze np \t a o to nie wiem czy nie łatwiej niż o średnik. Zastanawiam się jak to obejść... A może po prostu tu nie ma łatwego i mało obciążającego obejścia i najlepiej zostawić tę małą dziurę w kodzie? Ten post edytował qrzysztof 25.04.2009, 18:29:43 |
|
|
|
qrzysztof quiz z użyciem mysql/php - jak to zrobić? 25.04.2009, 12:49:32
bounty Tabela może wygladac tak :
tabela pyt_i_odp
Pytan... 25.04.2009, 13:29:30
fifi209 Bez sensu.
Zrób tak:
id
pytanie
odpowiedzi
a o... 25.04.2009, 13:46:14
bounty Jak bez sensu?! Potem tylko w html / php dopis... 25.04.2009, 14:19:32 
fifi209 Cytat(bounty @ 25.04.2009, 15:19:32 )... 25.04.2009, 14:28:07
bounty No tak nie doczytałem
Mój pomysł.
Pytanie | Odpow... 25.04.2009, 15:16:33
qrzysztof Dzięki za odpowiedzi.
Pomysł fifi209 na... 25.04.2009, 15:59:56 
fifi209 Cytat(qrzysztof @ 25.04.2009, 16:59:5... 25.04.2009, 16:09:11
bounty CytatA checkboxy są niepotrzebne bo użytkownik pod... 25.04.2009, 18:36:08
qrzysztof To już mam oprogramowane. Domyślnie odpowiedzi są ... 25.04.2009, 18:40:10
bear007 też się teraz z tym męczę skończeś moze ten projek... 11.02.2011, 17:40:36
celbarowicz Kiedyś ktoś pytał o quiz, rozpoczętą pracę można o... 11.02.2011, 18:07:23
Ghostbusters No właśnie. Jak to zrobić, żeby Quiz wyglądał tak:... 31.12.2014, 14:07:55 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 08:37 |