Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sytestem tworzenia testów
Forum PHP.pl > Forum > Przedszkole
pk7
Witam!
Mam do zrobienia projekt Sytestem tworzenia testów w PHP, nie wiem jak do tego podejść, może mi ktoś może podsunąć jakiś ciekawy pomysł? Planuje stworzyć baze danych z ok 50 różnymi zadaniami, odpowiedzi do nich A, B, C. Po wciśnięciu START wyświetlić 10 LOSOWYCH pytań z tych 50, zaznaczenie prawidłowej odpowiedzi a później po wciśnięciu KONIEC sprawdzanie tych odpowiedzi czy są poprawne, wyświetlanie statystyki, 51% oznacza zdanie, poniżej 50% powtórz test, dodatkową opcje - wyślij swój wynik na emaila. Jak będe miał taką podstawę to planuje dodać jeszcze jakieś ciekawe opcje itd. Proszę aby ktoś skierował mnie w dobrym kierunku...
pyro
Jakiego typu wskazówek do tego chcesz tongue.gif?
erix
  1. popraw tytuł wątku, bo o niczym nie mówi
  2. co to ma wspólnego z programowaniem obiektowym?
Moli
Zobacz sobie skrypt Limesurvey.
pk7
Zacząłem od stworzenia bazy danych i stworzenia tabeli ""baza_zadan" i utworzenia 6 kolumn: id_zadanie, zadanie, zad_A, zad_B, zad_C, prawidlowa, wyświetlam wszystko oprócz ostatniej kolumny prawidlowa na stronie, a teraz planuje stworzyć formułke sprawdzającą zaznaczoną odpowiedź z kolumną id_zadanie i kolumną prawidlowa. NIe wiem jak wykorzystać SELECT questionmark.gif? FROM baza_zadan aby wyświetlało losowe zadania na stronie...
erix
Najlepiej, to wygenerować po stronie PHP numerki (najwydajniejsze), na łatwiznę - order by rand().
nasty
Odrobię Ci pracę domową ;P

- Zrób sobie 3 tabele; jedną z pytaniami i jedną z odpowiedziami i jedną z rozwiazaniami tych pytan.
- W tabeli z pytaniami zrób następujące pola: id pytania, tresc pytania.
- w tabeli z odpowiedziami zrob takie pola: id odpowiedzi, id pytania, tresc odpowiedzi i czy jest poprawne.
- W tabeli z rozwiazaniami zrob: id usera, id odpowiedzi i id pytania

Jeżeli nie musisz zapamietywać na dłużej rozwiązań użytkowników to śmialo możesz zrezygnować z ostatniej tabeli i te wartości w sesji trzymać.
to tyle jeżeli chodzi o bazę.

W kodzie:

- Na początku testu stwórz tablicę o rozmiarze 10 elementów, wygeneruj 10 unikatowych identyfikatorów z puli isteniejących identyfikatorów pytań i zapisz je w tej tablicy.
- wyciągnij pytania razem z odpowiedziami z bazy danych których identyfikatory są w tej tablicy.
- zapisz ten zestaw pytań + odpowiedzi w cache.
- utwórz zmienna przekazującą numer aktualnie rozwiązywanego pytania i pokazuj to pytanie które jest pod tym numerem.
- jak uzytkownik odpowie na pytanie to zapisz w sesji numer pytania i numer odpowiedzi (pamietaj, że dodajesz na koniec a nie nadpisujesz)
- jak już numer pytania będzie się równał wielkości tablicy to znaczy, że dobiegł do końca, wtedy porównaj odpowiedzi które masz w sesji z tymi co masz zapisanymi w cache.
- wylicz ilość poprawnych i podziel przez 10.
- wyczyść cache
- powiadom usera o wyniku.

a teraz 50 ojro za konsultacje tongue.gif
pk7
Dzięki Erix i Nasty cool.gif To teraz popisze trochę ale to już jutro...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.