phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

Как мога да видя дали изборът на потребителя във теста е правилен?

Ето още един опит да ви помогна.

Всъщност написах "цялостно решение" и в процеса открих няколко малки грешки в кода ви - плюс някои неща, които просто не можах да разбера.

Основна грешка:всичките ви радио бутони имат една и съща стойност ($x), така че независимо кой бутон натиснете за въпрос 1, отговорът е "1" и т.н. Имаше и други неща, които правехте, които не можах да разбера - така че това, което направих вместо това, беше да създам прост поток - една страница, която задава въпросите, и друга, която оценява резултатите.

Страница с въпроси (закрих параметрите за достъп за моята база данни - не, не използвам "парола" като моя парола!):

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

и evaluate.php:EDIT:Промених малко кода, за да направя изхода "по-чист", и добавих червено/зелено докосване, за да покажа въпроси, на които е отговорено правилно и неправилно. Очевидно можете да вземете тези неща много по-далеч, ако искате...

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

Това даде (за прост избор от три въпроса, който направих) очакваните резултати. Кажете ми дали работи за вас!




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Защо TINYINT(1) функционира като булева, а INT(1) не?

  2. PHPMyAdmin поле за предупреждение - липсваща стойност във формуляра - всички обичайни полета са попълнени?

  3. Създайте диаграма на база данни в phpMyAdmin

  4. Функцията за търсене не работи в php

  5. Изберете идентификатора на влезлия потребител с помощта на PDO