phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Làm cách nào để biết lựa chọn của người dùng trong bài kiểm tra có đúng không?

Đây là một nỗ lực khác để giúp bạn.

Tôi thực sự đã viết một "giải pháp hoàn chỉnh" và trong quá trình này, tôi đã phát hiện ra một vài lỗi nhỏ trong mã của bạn - cộng với một số điều tôi không thể hiểu được.

Lỗi chính:tất cả các nút radio của bạn đều có cùng giá trị ($ x), vì vậy, bất kể bạn nhấn nút nào cho câu hỏi 1, câu trả lời là "1", v.v. Có những điều bạn đã làm mà tôi không thể tìm ra - vì vậy những gì tôi đã làm thay vào đó là tạo một quy trình đơn giản - một trang đặt câu hỏi và một trang khác đánh giá kết quả.

Trang câu hỏi (Tôi đã làm xáo trộn các tham số truy cập cho cơ sở dữ liệu của mình - không, tôi không sử dụng "password" làm mật khẩu của mình!):

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

và eval.php:EDIT:Tôi đã thay đổi mã một chút để làm cho đầu ra "sạch hơn", và thêm dấu màu đỏ / xanh lá cây để hiển thị các câu hỏi đã được trả lời đúng và sai. Rõ ràng là bạn có thể làm những điều này xa hơn nữa nếu bạn muốn ...

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

Điều này đã tạo ra (đối với một bài trắc nghiệm gồm ba câu hỏi đơn giản mà tôi đã thực hiện) kết quả như mong đợi. Hãy cho tôi biết nếu nó phù hợp với bạn!




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Xóa bảng khỏi cơ sở dữ liệu bằng phpMyAdmin

  2. Lỗi nhập PhpMyAdmin-Máy chủ MySQL đã biến mất / Từ khóa không được công nhận

  3. 127.0.0.1 có thể truy cập / hoạt động nhưng localhost không thể truy cập / không hoạt động

  4. PHPMyAdmin của MAMP cho tôi lỗi mysql # 2002

  5. Không gọi đến fetch_assoc () trên một đối tượng không phải là đối tượng?