• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jakim sposobem napisać skrypt testu online w PHP i MySQL?

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
1,729 wizyt
pytanie zadane 1 grudnia 2017 w PHP przez Michał Samolewski Bywalec (2,240 p.)
Witam,

nie szukam gotowego skryptu, bo chcę się czegoś nauczyć i spróbować napisać to sam. Jednak potrzebuję jakiegoś nakierowania jakie rozwiązanie zastosować.

Chcę napisać skrypt losujący pytania z bazy bez powtórzeń, a na końcu (po przekierowaniu na stronę podsumowującą) wyświetlający wynik poprawnych odpowiedzi. W zasadzie chodzi o coś takiego samego jak na stronie p. Zelenta egzamin-informatyk.

Potrzebuję kogoś, kto nakieruje mnie jakim sposobem to zrobić; jak zaprojektować bazę danych - czy tylko jedna tablica ze wszystkim, czy może jedna tablica na pytania i możliwe odpowiedzi, a druga z informacją, która odpowiedź jest poprawna do danego pytania. Jak to wszystko wylosować i najtrudniejsze dla mnie - jak powrzucać to do danych inputów 'radio' i porównać to potem do poprawnych odpowiedzi...

Pomożecie? :)

3 odpowiedzi

+2 głosów
odpowiedź 1 grudnia 2017 przez Bosswell Nałogowiec (36,470 p.)
wybrane 1 grudnia 2017 przez Michał Samolewski
 
Najlepsza
Zacznij od stworzenia odpowiedniej bazy danych. Na pewno będziesz potrzebował tabeli z pytaniami a w niej (Pytanie, odpA, odpB, odpC, odpD, poprawna, sciażka do zdjecia, data utworzenia). W kolumnie poprawna przechowuj wartości np od 1-4 lub od A-D.

W zależności od tego jak bardzo to ma być zaawansowanie, to możesz dołożyć kolumnę kwalifikacja_id i utworzyć tabele z kwalifikacjami np E.12, E.13 lub z innych zawodów z ich opisem.

Teraz wyjmujesz z bazy określoną liczbę losowych pytań. Używając w zapytaniu SQL słowa kluczowego LIMIT a do wybrania losowych rekordów klauzule ORDER BY RAND() (Tak, jest dużo spekulacji co do jej wydajności, ale przy małej bazie nie powinno działać wolno). Pobrane dane zapisz do tablicy sesyjnej.

Pytania musisz wypisać w formularzu w pętli zależnie od ilości wyciągniętych pytań. W wartości pól typu radio musisz dać takie dane, aby później można je było porównać z tym co masz w bazie danych.

Po kliknięciu w "zakończ test" przenosisz się do pliku, który będzie sprawdzał test. Tu zaczyna się zabawa. Przy porównywaniu pytań używaj danych zapisanych wcześniej do tablicy sesyjnej i tych co podesłał Ci użytkownik w formularzu. Dużo w tym miejscu się nauczysz ;)

Samo porównanie i wypisanie wyniku nie jest skomplikowane, ale jeżeli chcesz wypisać pytania i w zależności od podanej odpowiedzi podświetlić, czy jest ona dobra, a może zła i zaznaczyć ją na czerwono + wypisać poprawną na zieloną oraz trzeci przypadek, kiedy nie została zaznaczona w ogóle.
komentarz 1 grudnia 2017 przez Michał Samolewski Bywalec (2,240 p.)
Idealna odpowiedź, takiej właśnie oczekiwałem. Jestem mega wdzięczny. Biorę się do pracy! :)
+1 głos
odpowiedź 1 grudnia 2017 przez Igor Gawrys Stary wyjadacz (12,460 p.)
Chcesz pisać w freaworku czy w czystym php
komentarz 1 grudnia 2017 przez Michał Samolewski Bywalec (2,240 p.)
Czysty PHP. Rozpoczynam naukę tego języka. Znam podstawy, ale z frameworkami nie miałem jeszcze do czynienia. Chyba, że łatwo to załapać to jak najbardziej.
+1 głos
odpowiedź 1 grudnia 2017 przez PaulGilbert Gaduła (3,280 p.)
Ja zacząłem od przygotowania sobie interface-u do dodawania pytań do bazy i stworzenia bazy danych. Dzięki takiemu interface-owi będzie się łatwiej tworzyło bazę, układało pytania.

Podobne pytania

+1 głos
3 odpowiedzi 2,142 wizyt
0 głosów
2 odpowiedzi 691 wizyt
0 głosów
2 odpowiedzi 800 wizyt

93,444 zapytań

142,436 odpowiedzi

322,698 komentarzy

62,806 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...