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!