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

Hoe kan ik zien of de keuze van de gebruiker in de quiz correct is?

Hier is nog een poging om je te helpen.

Ik heb eigenlijk een "complete oplossing" geschreven en ontdekte tijdens het proces een paar kleine bugs in je code - plus enkele dingen die ik gewoon niet begreep.

Belangrijkste bug:al je keuzerondjes hebben dezelfde waarde ($x), dus het maakt niet uit op welke knop je drukt voor vraag 1, het antwoord is "1", enz. Er waren andere dingen die je deed die ik niet helemaal kon achterhalen - dus wat ik in plaats daarvan deed, was een eenvoudige stroom maken - een pagina die de vragen stelt en een andere die de resultaten evalueert.

Vraagpagina (ik heb de toegangsparameters voor mijn database verdoezeld - nee, ik gebruik geen "wachtwoord" als mijn wachtwoord!):

<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>

en evaluatie.php:EDIT:ik heb de code een beetje veranderd om de uitvoer "schoner" te maken en een rood/groen tintje toe te voegen om vragen te tonen die correct en incorrect waren beantwoord. Uiteraard kun je deze dingen veel verder gaan als je wilt...

<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>

Dit leverde (voor een eenvoudige meerkeuzevraag van drie vragen die ik maakte) de verwachte resultaten op. Laat me weten of het voor jou werkt!




  1. Sql Server 'Wijzigingen opslaan is niet toegestaan' fout ► Voorkom dat wijzigingen worden opgeslagen die opnieuw moeten worden gemaakt

  2. Toegestane geheugencapaciteit is uitgeput

  3. Phpmyadmin-toegang geweigerd na wijziging naar oudere versies van PHP/Apache op Wampserver

  4. Interne serverfout (HTTP-fout 500) na installatie van phpmyadmin op een bepaald domein