Mysql
 sql >> база данни >  >> RDS >> Mysql

Избиране на произволни въпроси от базата данни MySQL; правилният отговор е объркан

Когато зададете въпроса си на потребителя, въпросът се избира на случаен принцип от базата данни.

След това потребителят изпраща вашия формуляр, друг въпрос е избран на случаен принцип и това е въпросът, който използвате, за да проверите отговора, вместо въпроса, който сте задали на потребителя.

Трябва да добавите скрит вход във вашия формуляр, който съдържа идентификатора на въпроса

<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>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхраняване на дати в Hibernate като UTC времеви дати?

  2. Изберете всички, където [първата буква започва с B]

  3. Конвертиране на MySQL схема в Github Wiki?

  4. Има ли начин PHP да валидира SQL синтаксис, без да го изпълнява?

  5. Извикайте mysql вложени/вътрешни функции в querydsl