phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Wie kann ich sehen, ob die Wahl des Benutzers im Quiz richtig ist?

Hier ist ein weiterer Versuch, Ihnen zu helfen.

Ich habe tatsächlich eine "Komplettlösung" geschrieben und dabei ein paar kleine Fehler in Ihrem Code entdeckt - plus einige Dinge, die ich einfach nicht verstehen konnte.

Hauptfehler:Alle Ihre Optionsfelder haben den gleichen Wert ($x), also egal welchen Knopf Sie für Frage 1 drücken, die Antwort ist "1" usw. Es gab andere Dinge, die Sie getan haben, die ich nicht ganz herausfinden konnte - Also habe ich stattdessen einen einfachen Ablauf erstellt – eine Seite, die die Fragen stellt, und eine andere, die die Ergebnisse auswertet.

Frageseite (Ich habe Zugangsparameter für meine Datenbank verschleiert - nein, ich verwende "password" nicht als Passwort!):

<html>
<body>
<form action="./evaluate.php" method="post">
<?php
$server = mysql_connect ('localhost', 'username, 'password');
mysql_select_db("questionnaire", $server);

$question = mysql_query("SELECT * FROM `Questions`;");
$x = 0;
while ($row = mysql_fetch_assoc($question))
{
   echo $row['question'] . '<br />';
   echo '<input type="radio" name="a'.$x.'" value=1 />' .$row['answer1'] . '<br />';
   echo '<input type="radio" name="a'.$x.'" value=2 />' .$row['answer2'] . '<br />';
   echo '<input type="radio" name="a'.$x.'" value=3 />' .$row['answer3'] . '<br />';
   echo '<input type="radio" name="a'.$x.'" value=4 />' .$row['answer4'] . '<br />';
   $x = $x + 1;

}
mysql_close($server);
?>

<input type="submit" name="Submit" value="Submit" />
<br>
</form>
</body>
</html>

und auswerten.php:BEARBEITEN:Ich habe den Code ein wenig geändert, um die Ausgabe "sauberer" zu machen, und einen roten/grünen Touch hinzugefügt, um Fragen anzuzeigen, die richtig und falsch beantwortet wurden. Natürlich können Sie diese Dinge viel weiter führen, wenn Sie möchten ...

<html>
<body>

<?php
$server = mysql_connect ('localhost', 'username', 'password');
mysql_select_db("questionnaire", $server);

$question = mysql_query("SELECT * FROM `Questions`;");
$x = 0;
$score = 0;
while ($row = mysql_fetch_assoc($question))
{
    echo $row['question'] . '?<br />';

    $answered = $row['answer'.$_POST['a'.$x]] ;
    $correct = $row['correct'] ;

    if ($answered == $correct ) {
        $score++;
        $acolor = 'green' ;
    }
    else {
        $acolor = 'red' ;
    }

    echo 'you answered <font color=' . $acolor . '>' . $answered . '<font color=black> <br />';


    echo 'the correct answer was ' . $correct . '<br />' ;
    echo '-------------------------------------- <br />' ;

    $x = $x + 1;
}
echo 'You had a total of ' . $score . ' out of ' . $x . ' questions right!';
mysql_close($server);
?>

</body>
</html>

Dies führte (für eine einfache Multiple-Choice-Frage mit drei Fragen, die ich gemacht habe) zu den erwarteten Ergebnissen. Lassen Sie mich wissen, ob es für Sie funktioniert!