Testsystem mit PHP/MySQL entwickeln

at0m

Grünschnabel
Hallo zusammen!

Ich möchte einen Selbsttest erstellen. Hier ein kleines Beispiel:
Link

Es sollte meines Wissens nach mittels PHP und MySQL machbar sein.
Ich habe zwar Programmiererfahrungen und kenne mich mit SQL ganz gut aus, jedoch habe ich mit PHP in Zusammenhang mit MySQL noch keine Erfahrungen gemacht.

Die Antworten der Fragen sollen quasi eine Gewichtung erhalten. Beispiel:
Frage: "Wie gut sind sie über den Studiengang informiert?"
Bei den Antworten kann man zwischen "gar nicht" bis "sehr gut", in einer Gewichtung von 5 Punkten auswählen.

"sehr gut" soll dabei mit der vollen Punktzahl, z.B. 5 bewertet werden. "gar nicht" mit 1.

Die Gewichtung soll bei allen Fragen unterschiedlich sein. Am Ende des Tests bekommt der Benutzer ein Feedback. Je mehr Punkte er erreicht hat, desto besser ist das Ergebnis.

Meine Frage ist nun; wie kann man das am besten umsetzen? Wird dafür überhaupt eine Datenbank benötigt oder kann man das nur mit PHP realisieren? Wie würdet ihr bei der Entwicklung vorgehen?

Ich brauche halt einen kleinen Denkanstoß bei der ganzen Sache, da es noch Neuland für mich ist. :) Ich freue mich über jeden Beitrag!


VG
at0m
 
Also wenn es sich um einen einmaligen Test mit fest vorgegebenen Fragen und Antworten handelt, brauchst du keine Datenbank.

Jede Checkbox bekommt den entsprechenden Wert (1, 2, ..., 5) und das wird dann einfach zusammengezählt. Um die Werte zu speichern kannst du dir mal anschauen was man mit SESSION-Variablen alles machen kann.
 
Vielen Dank für die Antworten!

Ich werde mich also erst mal über Sessions informieren und versuchen einen kleinen Beispieltest damit zu erstellen.
Vielen Dank auch für das MySQL-Tutorial! Eine Datenbank werde ich brauchen, um Daten bez. der Benutzer zu sammeln (Geschlecht, Alter, etc.). Wusste halt beim eigentlichen Test nicht, wie ich sie verwenden könnte.
 
Ich würde dir generell zu einer Datenbank raten. Erstens ist der Seitenaufbau damit wesentlich einfacher, zweitens kann man es später nochmal verwenden und drittens ist es professioneller.

Du kannst eine Tabelle machen, in denen du die Fragen speicherst, die gestellt werden.
Dann eine für die Resultate: ID -- userID (wenn du es über Benutzer löst) -- frageID -- antwort
Und eben eine Benutzertabelle

gruß
 
Hm. OK. Denke, dann werde ich das wohl doch mal mit der Datenbank ausprobieren.

Dann würde man das also folgendermaßen lösen?
DB-Entwurf.png

Die Gewichtung der Fragen würde ich dann in PHP behandeln. Also z.B.
if frageId == 1 && antwort == 2
dann punkte + wert

Wobei ich die Frage-ID, die damit verbundene Frage und die Antwort-ID und die damit verbundene Antwort aus der Datenbank beziehen würde.

Oder kann man das besser lösen? Und lässt sich das überhaupt so lösen, wie ich es vorgeschlagen habe?

#EDIT: Bitte die untere Grafik nicht beachten. Habe sie überarbeitet.
 

Anhänge

  • DB-Entwurf.png
    DB-Entwurf.png
    9,1 KB · Aufrufe: 8
Zuletzt bearbeitet:
Jap, die Punkte könntest du auch noch in die Datenbank hauen, ist aber eigentlich sinnlos, wenns nur 1-5 sind z.b.
 

Neue Beiträge

Zurück