Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Fragen per Zufall aus Datenbank auswählen + auswerten

  1. #1
    Teeny
    Registriert seit
    29.01.2008
    Beiträge
    24
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Fragen per Zufall aus Datenbank auswählen + auswerten

    Hi,
    ich bin gerade dabei meinen IQ-Test zu programmieren. Dafür habe ich viele Fragen in einer Datenbank gespeichert. Ich möchte nun immer einen Teil der Fragen per Zufall aus der Datenbank auswählen und in meinen Test integrieren. Die simpelste Möglichkeit wäre wohl es so zu machen:
    Code:
    SELECT Frage
    FROM tabelle 
    ORDER BY RAND() 
    LIMIT 10;
    Das Problem ist, dass ich dann zwar die Fragen habe, ich sie aber einzeln in meine HTML-Maske schreiben muss:
    Code:
    <tr><td>Frage1&#58;</td></tr>
    <tr><td>    Hier kommt die Frage hin.      </td> 
    <td> <input name="F1" type="text" size="4" ></td></tr>
    
     Frage8&#58;   Hier kommt wieder eine Frage hin.     
    
    				 
    <input name="F8" type="radio" value="2" >        Und hier die Antworoptionen bei Multiple choice.         
    
    <input name="F8" type="radio" value="5" >   
    
    <input name="F8" type="radio" value="3" >   
    
    <input name="F8" type="radio" value="4" >   
    
    <input name="F8" type="radio" value="1" >
    Ich habe in meiner Datenbank die Fragen mit nur einer Antwortoption logischerweise in einer anderen Tabelle gespeichert als die mit Multiple Choice.
    Problem Nummer1 ist, wie kriege ich jetzt die per Zufall ausgewählten Fragen samt Antwortoptionen in meine Maske?
    Problem Nummer 2 ist wie erkenne ich bei der Auswertung der Antworten welche Frage eigentlich gestellt wurde und was somit die richtige Antwort ist?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Problem 1 und 2:
    du gibst allen fragen eine einmalige ID
    diese wird zu den dazugehörigen antworten eingefügt in der Datenbank
    Damit hast du mal eine Verknüpfung zwischen den beiden.
    In dein forumlar gibst du dann noch ein hidden-input, das die Fragen-ID beinhaltet.

    Und diese kasst du dann in PHP abfragen und beide Tabellen wieder auslesen.

    Mit freundlichen Grüßen
    Dodo
    Something big is coming. And there will be pirates and ninjas and unicorns...

  3. #3
    Bandit
    Gast

    Standard

    Zitat Zitat von Dodo
    du gibst allen fragen eine einmalige ID
    Das sollte man besser mysql überlassen und nicht selber machen. Die spalte id auf auto_increment setzen und gut ist.

  4. #4
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    jop so meine ich es
    aber die ID muss er dann auch in die 2. Tabelle eintragen (mysql_insert_id)
    Something big is coming. And there will be pirates and ninjas and unicorns...

  5. #5
    Teeny
    Themenstarter

    Registriert seit
    29.01.2008
    Beiträge
    24
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Also ich konkretisiere mal ein bisschen wie meine Datenbank aufgebaut ist. Der IQ-Test besteht aus mehreren Teilen (zahlenreihen,Textaufgaben, Wortanalogien...). Für jeden Teil habe ich eine eigene Tabelle erstellt. In den Tabellen ist in jeder Reihe enthalten, die ID, die Frage und die Antwort(en).Ich habe bei jeder Tabelle bei den IDs mit 1 angefangen.
    Nun mache ich das beispielsweise so:
    Code:
    $query= "SELECT * FROM Wortanalogien ORDER BY RAND&#40;&#41; LIMIT 5;";
    			$result = mysql_query&#40;$query, $db&#41;;
    			 
    			 while &#40;$row = mysql_fetch_assoc&#40;$result&#41;&#41;&#123;
    				$id = $row&#91;"id"&#93;;
    				$F = $row&#91;"F"&#93;;
    				$A1 = $row&#91;"A1"&#93;;
    				$A2 = $row&#91;"A2"&#93;;
    				$A3 = $row&#91;"A3"&#93;;
    				$A4 = $row&#91;"A4"&#93;;
    				$A5 = $row&#91;"A5"&#93;;
                             &#125;
    Wie bekomme ich es jetzt hin, die 5 ausgewählten Fragen samt Antwortoptionen in meinen Fragenteil zu kriegen. Dabei muss auch berücksichtigt werden, dass ich dia Anworten ja auch noch auswerten muss, d.h ich muss genau wissen wo welche Frage steht.
    Sorry wenn ich stresse, aber meine Programmierkentnisse sind äußerst beschränkt.

  6. #6
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    du kannste deine Formulardaten als array versenden.
    Google mal danach

    So kannst du zB. name="Frage[]" für schreiben.
    oder name="AW1[]"

    Und so gehören dann alle mit dem index 0 zusammen
    alle mit index 1
    etc...
    Something big is coming. And there will be pirates and ninjas and unicorns...

  7. #7
    Bandit
    Gast

    Standard

    Zitat Zitat von Krendipont
    Sorry wenn ich stresse, aber meine Programmierkentnisse sind äußerst beschränkt.
    Und was spricht dagegen, diesen Zustand zu ändern? Einen IQ-Test programmieren wollen, aber an so Grundlagen schon scheitern, passt ja riesig.
    Code:
    $query= "SELECT 
                `id`, `F`, `A1`, `A2`, `A3`, `A4`, `A5`
               FROM 
                 `Wortanalogien`
               ORDER BY RAND&#40;&#41; 
               LIMIT 5";
               
    $result = mysql_query&#40;$query, $db&#41; or
                die &#40;"MySQL-Error&#58; " . mysql_error&#40;&#41;&#41;; 
              
    while &#40;$row = mysql_fetch_assoc&#40;$result&#41;&#41;
    &#123; 
       $id = $row&#91;"id"&#93;; 
       $F  = $row&#91;"F"&#93;; 
       $A1 = $row&#91;"A1"&#93;; 
       $A2 = $row&#91;"A2"&#93;; 
       $A3 = $row&#91;"A3"&#93;; 
       $A4 = $row&#91;"A4"&#93;; 
       $A5 = $row&#91;"A5"&#93;;
    
       echo "<tr>
              <td>$F</td>
              <td><input type='radio' name='antwort&#91;$id&#93;' value='1'> $A1</td>
              <td><input type='radio' name='antwort&#91;$id&#93;' value='2'> $A2</td>
              <td><input type='radio' name='antwort&#91;$id&#93;' value='3'> $A3</td>
              <td><input type='radio' name='antwort&#91;$id&#93;' value='4'> $A4</td>
              <td><input type='radio' name='antwort&#91;$id&#93;' value='5'> $A5</td>
             </tr>\n";          
    &#125;

  8. #8
    Teeny
    Themenstarter

    Registriert seit
    29.01.2008
    Beiträge
    24
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Na ja, ich bin doch dabei diesen Zustand zu ändern. Unter Druck zu arbeiten hat noch niemandem geschadet.
    Deine Lösung funktioniert auch nicht. Ich möchte aus meiner Datenbank ja fünf per Zufall ausgewählte Fragen samt Antworten in meine HTML-Maske kriegen und diese dann auch auswerten.

  9. #9
    Bandit
    Gast

    Standard

    Da werden fünf fragen per zufall aus der DB gelesen. Was natürlich noch fehlt, ist der rest des formulars und die auswertung der daten. Aber das kannst du ja erst mal alleine versuchen, alles vorkauen muss ja nicht sein.

    11. Variablen und Formulare
    http://www.php-faq.de/ch/ch-webvariablen.html

  10. #10
    Teeny
    Themenstarter

    Registriert seit
    29.01.2008
    Beiträge
    24
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Also das Formular und die Auswertung sind kein Problem. Ich scheitere leider schon davor. Ich habe jetzt die fünf Fragen mit Antworten. Das Problem ist, dass ich sie nicht aufrufen kann. $F ist doch ein assoziatives Array in dem alle 5 Fragen gespeichert sind, oder? Wie rufe ich jetzt die 5 veschiedenen Fragen auf.
    Ich weiß es ist total simpel und blöd aber ich hab irgendwie ein Brett vorm Kopf.
    Wenn ihr mir das beantworten könnt seid ihr mich los(hoffentlich ).

Ähnliche Themen

  1. Zufall und Rundung in SWI Prolog
    Von The User im Forum Forum für alle anderen Programmiersprachen
    Antworten: 1
    Letzter Beitrag: 14.11.2007, 11:08
  2. Bereich für Datenbank-Fragen
    Von chris90night im Forum Forum-Hilfe.de intern
    Antworten: 13
    Letzter Beitrag: 04.04.2007, 21:00
  3. Per Zufall wechselnde Hintergrundgrafiken erzeugen mit css
    Von Area51sbk im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 16
    Letzter Beitrag: 31.03.2007, 14:20
  4. per zufall zu einem anker springen
    Von Denjo im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 26.02.2006, 14:41

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •