Home > Article > Backend Development > How to use PHP to develop online test question function
How to use PHP to develop online test function
With the development of the Internet, online learning and examinations have become a popular way of learning. In order to provide a more convenient and flexible learning environment, many institutions and individuals have begun to develop online test functions so that students can practice and test anytime and anywhere. This article will introduce how to use PHP to develop a simple online test function.
1. Data storage and management
Before developing the test question function, you first need to consider the data storage and management of the test questions. Normally, test question data can be stored in a database, which allows for easy addition, deletion, modification, and query operations. We can use MySQL database to store test question data.
Create a database named test_questions and create a table named questions. The table structure is as follows:
CREATE TABLE questions
(
id
int(11) NOT NULL AUTO_INCREMENT,
question
varchar(255) NOT NULL,
options
text NOT NULL,
answer
varchar(255) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
The fields in the table contain the id (of the test question unique number), question (question content), options (options) and answer (answers).
2. PHP development test questions function
First establish a connection with the MySQL database in the PHP code:
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "test_questions";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
Write a function to get test question data from the database:
function getQuestions() {
global $conn; $sql = "SELECT * FROM questions"; $result = $conn->query($sql); if ($result->num_rows > 0) { $questions = []; while ($row = $result->fetch_assoc()) { $question = [ 'id' => $row['id'], 'question' => $row['question'], 'options' => json_decode($row['options'], true), 'answer' => $row['answer'], ]; $questions[] = $question; } return $questions; } else { return []; }
}
?>
Use the above function to display the obtained test question data on the web page:
$questions = getQuestions();
?>
<h3><?php echo $question['question']; ?></h3> <?php foreach ($question['options'] as $option): ?> <label> <input type="radio" name="answer_<?php echo $question['id'];?>" value="<?php echo $option; ?>"> <?php echo $option; ?> </label> <?php endforeach; ?>
In the function of submitting answers, we need to determine whether the answer selected by the user is consistent with The correct answers are consistent and the corresponding prompt information is displayed:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$answers = $_POST; $score = 0; foreach ($questions as $question) { $userAnswer = $answers["answer_{$question['id']}"]; if ($userAnswer === $question['answer']) { $score++; } } echo "总分:" . $score;
}
?>
The above is a simple example of the online test function developed using PHP. Through the above code, we can realize the data storage and management of test questions, the display of test questions, and the functions of submitting answers and calculating scores. Based on actual needs, we can further expand and optimize this function, such as supporting multiple question types, adding statistical and analytical functions, etc.
Summary
With the popularity of online learning, developing a convenient online test question function is very important to improve students' learning effects and enhance user experience. By using PHP to develop the online test question function, we can not only realize the storage and management of test questions, but also conveniently display test questions and calculate scores. I hope this article is helpful to you, if you have any questions, please feel free to leave a message.
The above is the detailed content of How to use PHP to develop online test question function. For more information, please follow other related articles on the PHP Chinese website!