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

Hur kan jag se om användarens val i frågesporten är korrekt?

Här är ytterligare ett försök att hjälpa dig.

Jag skrev faktiskt en "komplett lösning", och upptäckte i processen några små buggar i din kod - plus några saker jag bara inte kunde förstå.

Huvudfel:alla dina radioknappar har samma värde ($x), så oavsett vilken knapp du trycker på för fråga 1 så är svaret "1", etc. Det var andra saker du gjorde som jag inte riktigt kunde lista ut - så det jag gjorde istället var att skapa ett enkelt flöde - en sida som ställer frågorna och en annan som utvärderar resultaten.

Frågesida (jag fördunklade åtkomstparametrar för min databas - nej, jag använder inte "lösenord" som mitt lösenord!):

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

och evaluate.php:EDIT:Jag ändrade koden lite för att göra utgången "renare", och lägg till en röd/grön touch för att visa frågor som hade besvarats korrekt och felaktigt. Självklart kan du ta dessa saker mycket längre om du vill...

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

Detta gav (för ett enkelt flerval med tre frågor jag gjorde) de förväntade resultaten. Låt mig veta om det fungerar för dig!




  1. Hur lång tid bör en 75mb sql-fil ta att importera i PHPMyAdmin?

  2. Importera SQL-fil via kommandoraden i Windows 7

  3. docker-compose:mariadb - Anslutning nekad

  4. Hur man installerar och säkrar phpMyAdmin på Ubuntu 16.04