Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lựa chọn câu hỏi ngẫu nhiên từ cơ sở dữ liệu MySQL; câu trả lời đúng bị lộn xộn

Khi bạn đặt câu hỏi của mình cho người dùng, một câu hỏi được chọn ngẫu nhiên từ cơ sở dữ liệu.

Sau đó, người dùng gửi biểu mẫu của bạn, một câu hỏi khác được chọn ngẫu nhiên và đó là câu hỏi bạn đang sử dụng để kiểm tra câu trả lời, thay vì câu hỏi bạn đã hỏi người dùng.

Bạn cần thêm một đầu vào ẩn trong biểu mẫu của mình, chứa id câu hỏi

<input type="hidden" name="question_id" value="<?php echo $question_id ?>" />

Và sau đó khi bạn kiểm tra câu trả lời, hãy đảm bảo tìm nạp đúng câu hỏi từ cơ sở dữ liệu

Mã sẽ giống như thế này

<?php

// Check user answer for previous question
if (isset($_POST['submit'])) {   
    // Retrieve the id of the question you asked
    $previous_question_id = (int) $_POST['question_id']; // cast to integer to prevent sql injection.

    // Query database
    $get_question = "SELECT * from questions_table where id = $previous_question_id";
    $result_get_question = mysqli_query($conn, $get_question);
    $row_get_question = mysqli_fetch_array($result_get_question);

    // Assign database response to variables
    $correct = $row_get_question['correct'];
    $selected_radio = $_POST['response'];

    if ($selected_radio == $correct)
        echo "THAT ANSWER IS CORRECT";
    else
        echo "THAT ANSWER IS WRONG!";
}


// Load new question to ask to the user
$get_question = "SELECT * from questions_table order by rand() limit 1";
$result_get_question = mysqli_query($conn,$get_question);
$row_get_question = mysqli_fetch_array($result_get_question);  

// assign thing we want to print in the template to variable
$question_id = $row_get_question['question_id'];
$question = $row_get_question['question'];
$a1 = $row_get_question['a1'];
$a2 = $row_get_question['a2'];
$a3 = $row_get_question['a3'];
$a4 = $row_get_question['a4'];

?>

<PASTE YOUR TEMPLATE HERE>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể sử dụng lại một trường được tính toán trong một truy vấn CHỌN không?

  2. Lưu dữ liệu bảng có được trong khi rà soát trang web bằng casperjs

  3. Làm thế nào để tạo dữ liệu trong MySQL?

  4. Cách định dạng chuỗi mệnh đề SQL IN với Python

  5. Câu hỏi bảo mật trang web động (PHP + MySQL)