ユーザーに質問すると、データベースからランダムに質問が選択されます。
次に、ユーザーがフォームを送信すると、別の質問がランダムに選択されます。これは、ユーザーに尋ねた質問ではなく、回答の確認に使用している質問です。
質問IDを含む非表示の入力をフォームに追加する必要があります
<input type="hidden" name="question_id" value="<?php echo $question_id ?>" />
そして、答えを確認するときは、必ずデータベースから正しい質問を取得してください
コードは次のようになります
<?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>