Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Baza danych z testami
qjam
post 1.05.2013, 06:15:52
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

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


Witam.

Zastanawiam się jak utworzyć bazę danych z testami. Otóż mam formularz dodający test. Są pola na pytania i odpowiedzi ale teraz jak zaznaczyć te poprawne odpowiedzi? Obok każdej z poprwanych odpowiedzi wrzucić opcję "checkbox" lub "radio" i wrzucać to jakoś do osobnej tabeli? W sensie że same pytania i odpowiedzi będą w tabeli test_pytania, a odpowiedzi test_odpowiedzi i tam tylko porównywać po ID gdy użytkownik rozwiąże test? Jak to widzicie?
Go to the top of the page
+Quote Post
Wazniak96
post 1.05.2013, 09:20:05
Post #2





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


W tabeli dodać kolumnę, i jeżeli odp jest poprawne zmienić na np. 1.
Co do tych całych testów, jeżeli masz ich większą ilość rozbiłbym pytania i odpowiedzi na dwie tabele. W tabeli pytania - id, pytanie i czy test jest aktywny, a w drugiej - odpowiedź, id pytania do którego jest to odp, i czy pytanie jest poprawne. smile.gif
Go to the top of the page
+Quote Post
qjam
post 1.05.2013, 09:26:58
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

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


Testów będzie więcej. Dodatkowo ten Twój sposób się nie sprawdzi bo trzeba byłoby znać ID testu i dodatkowo przypisać pytania i odpowiedzi do tego testu. A ID nie znamy przecież w momencie zakładania testu.
Go to the top of the page
+Quote Post
q3trm
post 1.05.2013, 12:08:31
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


To kto ma znać to ID?. Ja bym to rozdzielił na trzy tabele TESTY ( nazwa), PYTANIA (nazwa_test, id_pytania, pytanie), ODPOWIEDZI (id_pytania, odpowiedz), następnie powiązać PYTANIAnazwa_test z TESTYnazwa, ODPOWIEDZIid_pytanie z PYTANIAid_pytanie.
Go to the top of the page
+Quote Post
qjam
post 1.05.2013, 16:00:54
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

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


Cytat
To kto ma znać to ID?

Nie powiesz mi, że w momencie wyświetlania formularza znasz ID tworzonego testu, a tym samym umieszczasz ID testu w odpowiedziach i pytaniach. Po GET? Nie, bo w bazie ID może być zupełnie inne. Sprawdzanie czy dane ID jest wolne i dopiero ładowanie formularza? Bez sensu.

Chodzi o to panowie, że miałbym powiedzmy w każdym teście po 10 pytań i teraz tak. Tworzę test, nadaję mu nazwę, wypisuję pytania i po 4 możliwe odpowiedzi (zamknięte) do każdego pytania. Tutaj w jakiś sposób muszę już określić (tworzac test) która odpowiedz jest poprawna.

Następnie ktoś rozwiązuje test, pobiera wszystkie pytania, zaznacza odpowiedzi i test sprawdza poprawność odpowiedzi zwracając mu wynik.
Go to the top of the page
+Quote Post
mlawnik
post 1.05.2013, 16:18:45
Post #6





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


To w momencie tworzenia testu nadajesz mu ID poprzez podanie NULL w pole ID z właściwością AUTO_INCREMENT NOT NULL.


--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
Wazniak96
post 1.05.2013, 17:01:56
Post #7





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Takie problemy oczywiście zostały już dawno przewidziane smile.gif
  1. $query = mysql_query("SELECT LAST_INSERT_ID()");
  2. $id = mysql_fetch_assoc($query);
  3. $id = $id['LAST_INSERT_ID()'];
  4.  
  5. // metoda druga


Oczywiście musi być byle AUTO INCREMENT...

Ten post edytował Wazniak96 1.05.2013, 17:04:05
Go to the top of the page
+Quote Post
q3trm
post 2.05.2013, 09:53:56
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


Cytat(qjam @ 1.05.2013, 17:00:54 ) *
Nie powiesz mi, że w momencie wyświetlania formularza znasz ID tworzonego testu, a tym samym umieszczasz ID testu w odpowiedziach i pytaniach. Po GET? Nie, bo w bazie ID może być zupełnie inne. Sprawdzanie czy dane ID jest wolne i dopiero ładowanie formularza? Bez sensu.


Nie muszę znać id testu w ogóle w tym przypadku bym go nie użył. Wolałbym mieć samą nazwę testu w tabeli pytania - łatwiej się rozeznać w logice bazy, niż w każdej tabeli importować jakieś obce id. A przepisywaniem id_pytanie do tabeli odpowiedzi oraz test_nazwa do pytanie, zajmuje się TRIGGER.
Go to the top of the page
+Quote Post
qjam
post 3.05.2013, 10:53:40
Post #9





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 31.07.2011

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


Moglibyście tu wrzucić w CODE zaprojektowana baze itp. jak widzicie relacje między nimi? Bo utknąłem i teraz nie wiem jak to zrobić...
Tutaj zamieszczam link o oc mi chodzi:



Widać, że jest radio przy każdej odpowiedzi aby zaznaczyć poprawność. Więc w tabeli TEST_ODPOWIEDZI powinienem zrobić jeszcze dodatkowe pole np. POPRAWNA i gdy będzie 1 tzn, że porpawna odpowiedź, a jak 0 to nie? I jak sprawdzić później tą poprawność skoro w teście wyświetlą się wszystkie pytania, 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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:56