Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybieranie losowych pytań z bazy danych MySQL; poprawna odpowiedź zawiedli

Kiedy zadajesz pytanie użytkownikowi, pytanie jest losowo wybierane z bazy danych.

Następnie użytkownik przesyła formularz, losowo wybierane jest kolejne pytanie i to jest pytanie, którego używasz do sprawdzenia odpowiedzi, a nie pytanie zadane użytkownikowi.

Musisz dodać do formularza ukryte dane wejściowe, które zawierają identyfikator pytania

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

A potem, gdy sprawdzisz odpowiedź, pamiętaj, aby pobrać właściwe pytanie z bazy danych

Kod wyglądałby tak

<?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. pip install mysqlclient na amazon linux

  2. Czy w MySQL istnieje alternatywa „connect by”?

  3. posortuj zestawienie w grupie według

  4. Przesyłanie CSV za pomocą PHP/MySQL

  5. Jak tworzyć i używać widoków MySQL