sql >> Database teknologi >  >> RDS >> Mysql

Valg af tilfældige spørgsmål fra MySQL-databasen; korrekt svar rodet

Når du stiller dit spørgsmål til brugeren, vælges et spørgsmål tilfældigt fra databasen.

Så indsender brugeren din formular, et andet spørgsmål vælges tilfældigt, og det er det spørgsmål, du bruger til at kontrollere svaret, i stedet for det spørgsmål, du stillede til brugeren.

Du skal tilføje et skjult input i din formular, som indeholder spørgsmåls-id'et

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

Og når du så tjekker svaret, skal du sørge for at hente det rigtige spørgsmål fra databasen

Koden ville se sådan ud

<?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. WordPress MySQL SQL-forespørgselsfejl i WPDB-klassen

  2. Overførsel af datatabel som parameter til lagrede procedurer

  3. Hvad er bedre i MYSQL count(*) eller count(1)?

  4. Hvordan får jeg id'et for en række, der har MAX og MIN værdier i SQL