sql >> Database >  >> RDS >> Mysql

Het selecteren van willekeurige vragen uit de MySQL-database; juiste antwoord verknald

Wanneer u uw vraag aan de gebruiker stelt, wordt er willekeurig een vraag uit de database geselecteerd.

Vervolgens verzendt de gebruiker uw formulier, een andere vraag wordt willekeurig geselecteerd en dat is de vraag die u gebruikt om het antwoord te controleren, in plaats van de vraag die u aan de gebruiker hebt gesteld.

U moet een verborgen invoer in uw formulier toevoegen, die de vraag-ID bevat

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

En als u het antwoord controleert, zorg er dan voor dat u de juiste vraag uit de database haalt

De code ziet er als volgt uit

<?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. Refactor externe sleutel naar velden

  2. Tabeveldstatus automatisch bijwerken systeemdatum controleren met behulp van query in mysql en java

  3. Kan tekenreekswaarde 1,2 niet doorgeven als invoer voor een orakel-query

  4. MySQL-rij 30153 is afgebroken door een GROUP_CONCAT()-fout