Guten Tag,
ich hätte ein Anliegen bezüglich eines Datenbank-Problems.
Ich schreibe ein PHP-Tool, welches einen Multiple-Choice-Test zur Verfügung stellt. Zu diesem Zweck gibt es Fragen mit ein paar Antwortmöglichkeiten. Von diesen können 0,1,2, .... oder alle richtig sein.
Datenbank-Schema (stark vereinfacht):
Jetzt gibt es beispielsweise 10 Fragen mit je unterschiedlich vielen Punkten. Zu jeder Frage gibt es Antwortmöglichkeiten in answers, die richtig sein können (entsprechender Eintrag in correctanswers). Welche Antwort(en) vom Benutzer gegeben wurden steht in givenanswers.
Mein Problem ist jetzt die Auswertung. Ich möchte die erreichten Punkte errechnen.
Ich hätte folgenden Vorschlag:
Ich probiers mal algorithmisch zu formulieren: Iteriere über alle Fragen und überprüfe bei jeder Antwortmöglichkeit, dass falls sie in correctanswers vorhanden ist, auch in givenanswers sein müsste. Falls sie nicht in correctanswers ist, dann darf sie auch nicht in givenanswers sein. Wenn das erfüllt ist, dann gibt es soviele Punkte, wie für die Frage vorgesehen, ansonsten 0 Punkte. Gebe die Summe der gegebenen Punkte aus.
Ich hab mir zuerst überlegt, ob ich die Datenbank abrufen sollte und das mit den PHP-Arrays ausprogrammieren sollte, aber ich glaube es ist sinnvoller hier einen query zu verwenden.
Vielen Dank schon im Voraus
ich hätte ein Anliegen bezüglich eines Datenbank-Problems.
Ich schreibe ein PHP-Tool, welches einen Multiple-Choice-Test zur Verfügung stellt. Zu diesem Zweck gibt es Fragen mit ein paar Antwortmöglichkeiten. Von diesen können 0,1,2, .... oder alle richtig sein.
Datenbank-Schema (stark vereinfacht):
questions (qid, text, points)
answers (aid, questionid, text)
giveanswers (gid, answerid)
correctanswers (cid, answerid)
answers (aid, questionid, text)
giveanswers (gid, answerid)
correctanswers (cid, answerid)
Mein Problem ist jetzt die Auswertung. Ich möchte die erreichten Punkte errechnen.
Ich hätte folgenden Vorschlag:
Ich probiers mal algorithmisch zu formulieren: Iteriere über alle Fragen und überprüfe bei jeder Antwortmöglichkeit, dass falls sie in correctanswers vorhanden ist, auch in givenanswers sein müsste. Falls sie nicht in correctanswers ist, dann darf sie auch nicht in givenanswers sein. Wenn das erfüllt ist, dann gibt es soviele Punkte, wie für die Frage vorgesehen, ansonsten 0 Punkte. Gebe die Summe der gegebenen Punkte aus.
Ich hab mir zuerst überlegt, ob ich die Datenbank abrufen sollte und das mit den PHP-Arrays ausprogrammieren sollte, aber ich glaube es ist sinnvoller hier einen query zu verwenden.
Vielen Dank schon im Voraus

Kommentar