Fragebogenauswertung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fragebogenauswertung

    Also,
    ich bräuchte mal ein kleines Brainstorming bezgl. der Logik. Stehe da momentan etwas auf dem Schlauch ;o)

    Ich habe ein Formular.
    Dies besteht aus n Fragen mit jeweils beliebig vielen Antworten (Checkbox).

    z.B.:

    PHP-Code:
    <form action="" method="POST" target="">  Was geht ab?  <input type="Checkbox" name="123[]" value="1"><br>  <input type="Checkbox" name="123[]" value="2"><br>  <input type="Checkbox" name="123[]" value="3"><br>  <input type="Submit" name="" value="">  </form
    Wobei 123 jetzt die ID der Frage in der Datenbank ist und das value der checkboxen jeweils die ID der Antwort in der DB.

    Die Daten lasse ich mir per Post als Array übergeben.
    Ich bekomme also zum Auswerten something like that:

    Array ( [123] => Array ( [0] => 1 [1] => 2 ) )

    Soweit so gut. Wie würdet Ihr jetzt die Ergebnisse am Sinnvollsten mit den Antworten in der DB abgleichen?

    Ich habe eine Tabelle mit den Fragen und eine mit den Antworten. Bei den Antworten habe ich die Frageid sowie ein Flag ob die ANtwort richtig oder falsch ist mit dabei.

    Ich vermute mal ich sollte einen Leftjoin der 2 Tabellen machen, allerdings hänge ich dann immernoch an der Logik die mich auswerten lässt ob die gegebenen Antworten alle richtig sind.

    Es geht auch darum:
    Die Beispielfrage hat 3 Antworten. In der DB steht jetzt hinter Antwort 1 rcihtig und bei Antwort 2 richtig.

    Wenn er nur die 1 anhakt ist die Antwort falsch.

    Versteht ihr worauf ich hinaus will?

  • #2
    Viel zu aufwändig...

    Je nach dem wie du die Punkte berechnest:

    1) alle antworten (zu den gestellten Fragen) auswählen
    2) dann in ner schleife prüfen:

    if(in_array($_POST[123],2))

    Das ganze bauste dann dynamisch auf, so dass du auch mehrere Antworten angegeben worden sein müssen.

    Hierbei könnte hilfreich sein, das ganze vorher in ein array zu packen:
    $loesungen[123] array(1,2); (oder ähnlich)

    alternativ wäre ein Gruppenwechsel angebracht.
    Zuletzt geändert von TobiaZ; 29.06.2008, 15:48.

    Kommentar


    • #3
      Also meinst du,

      zuerst die richtigen Antworten in der DB abfragen
      und dann einfach über in_array() vergleichen, richtig?

      Klingt soweit ganz gut ;o)

      Was genau meinst du mit "Gruppenwechsel"?

      Kommentar


      • #4
        Benutz einfach mal die Suche, genauso wie die vielen Menschen vor dir...

        Kommentar

        Lädt...
        X