Ankündigung

Einklappen
Keine Ankündigung bisher.

angeklickte checkboxen mit mysql auswerten

Einklappen

Neue Werbung 2019

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

  • angeklickte checkboxen mit mysql auswerten

    Hallo alle miteinander,

    folg. Problem:
    Ich möchte einen Wissenstest erstellen. Fragen und Antworten liegen in einer SQL-DB-Tabelle vor. Tabellenspalten sind: frage, antwort_1, antwort_2..., richtig.
    Fragetyp Multiple-Choice, d.h. mehrere richtige Antworten per Checkbox. Die Überprüfung, ob eine Antwort korrekt ist mach ich über Binärzahlvergleich. Das klappt auch soweit.
    Nun möchte ich aber bei einer falschen Antwort die richtigen Antworten aus den entsprechenden Spalten ausgeben. Wie stelle ich das an?
    Meine Idee: Binärzahl irgendwie zerlegen und dann irgendwie per select auf die jeweilige Spalte (bspw. antwort_1) zugreifen. Dabei dürfen aber nur die Spalten mit 1 (true) in der Ausgabe erscheinen.

    Wäre prima, wenn ihr mir unter die Arme greifen könntet.


  • #2
    Hast du dir schon mal den Artikel Normalisierung (Datenbank) – Wikipedia durchgelesen?
    http://hallophp.de

    Kommentar


    • #3
      Vielen Dank für deinen Tipp.
      Hab ich gerade durchgelesen. Da mein Vorhaben aber keine große Aktion wird, dürfte das nicht das Problem sein.

      Zur Verdeutlichung meines Vorhabens mal ein Codeausschnitt zur Darstellung auf der Webseite
      PHP-Code:
      case 2://Checkbox
          
      echo "Bitte wähle mindestens eine Antwort aus:<br><br>";
          echo 
      "<input type='checkbox' name='cb1' value='8'>".mysql_result($result1,0,'antwort_1')."</input><br><br>";
          echo 
      "<input type='checkbox' name='cb2' value='4'>".mysql_result($result1,0,'antwort_2')."</input><br><br>";
          echo 
      "<input type='checkbox' name='cb3' value='2'>".mysql_result($result1,0,'antwort_3')."</input><br><br>";
          echo 
      "<input type='checkbox' name='cb4' value='1'>".mysql_result($result1,0,'antwort_4')."</input><br><br>";break; 
      $result1,0,'antwort_1' liefert die jeweilige Vorgabeantwort aus der DB

      Die Auswertung erfolgt durch:
      PHP-Code:
      case 2:    //Checkbox
      $sloesung=$_GET['cb1'].$_GET['cb2'].$_GET['cb3'].$_GET['cb4'];
      $awr=mysql_result($result2,0,"richtig");    
          if (
      $sloesung==$awr)
          {
          echo 
      "richtig";
          
      $_SESSION[punkte]=$_SESSION[punkte]+1;
          
      $sql3="INSERT INTO beantwortet VALUES ($fnr,$_SESSION[nutzer_nr],1)";
          } 
      else
          {
          echo 
      "falsch, die richtige Antwort wäre "???"!";
          
      $sql3="INSERT INTO beantwortet VALUES ($fnr,$_SESSION[nutzer_nr],0)";
          }
          break;] 
      $awr liefert die richtige(n) Antwort(en) als Zahl.
      $sloesung liefert die jeweilige Nutzerantwort.


      Funktioniert vom Prinzip her alles. Mein Problem ist nun in der Zeile
      PHP-Code:
      echo "falsch, die richtige Antwort wäre "???"!"
      bei den 3 Fragezeichen. Dort muss eine Funktion hin, die den Inhalt der Spalte(n) mit der richtigen Antwort ausgibt.

      Hab leider keinen richtigen Plan, wie das gehen könnte.

      BTW: Bin erst Mittwoch wieder Online. Schönen Abend noch.

      Kommentar

      Lädt...
      X