sql >> Databasteknik >  >> RDS >> Mysql

Välja slumpmässiga frågor från MySQL-databasen; rätt svar trasslat

När du ställer din fråga till användaren väljs en fråga slumpmässigt från databasen.

Sedan skickar användaren ditt formulär, en annan fråga väljs ut slumpmässigt, och det är frågan du använder för att kontrollera svaret, istället för frågan du ställde till användaren.

Du måste lägga till en dold ingång i ditt formulär, som innehåller fråge-id

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

Och när du kontrollerar svaret, se till att hämta rätt fråga från databasen

Koden skulle se ut så här

<?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. Hur returnerar man resultatet av en SELECT inuti en funktion i PostgreSQL?

  2. Hur man beräknar genomsnittlig försäljning per vecka i MySQL

  3. förvirring med att lägga till 2 tidsvärden

  4. Subtrahera minuter från ett tidsvärde i PostgreSQL