Maison >développement back-end >tutoriel php >Comment implémenter les fonctions d'importation et d'exportation des épreuves dans la réponse en ligne
Comment implémenter la fonction d'importation et d'exportation de copies de test dans la réponse en ligne nécessite des exemples de code spécifiques
Avec le développement de la technologie, les systèmes de réponse en ligne sont de plus en plus favorisés par les étudiants et les enseignants et jouent un rôle important dans l'enseignement. Le système de questions-réponses en ligne peut non seulement améliorer l'enthousiasme d'apprentissage des élèves, mais également permettre aux enseignants d'effectuer des corrections efficaces. Cependant, un bon système de réponse en ligne devrait avoir pour fonction d'importer et d'exporter des épreuves pour améliorer la flexibilité et la commodité du système. Cet article présentera comment implémenter les fonctions d'importation et d'exportation des épreuves dans le système de réponse en ligne et fournira des exemples de code spécifiques.
1. Implémentation de la fonction d'importation de papier test
Avant d'implémenter la fonction d'importation de papier test, nous devons d'abord clarifier la structure des données du papier test. Une épreuve de test comprend généralement un titre d’épreuve, une liste de questions et une liste de réponses. La liste de questions contient plusieurs questions et chaque question a un type de question, un contenu de question et une liste d'options. Les réponses à chaque question sont incluses dans la liste de réponses. Dans la base de données, trois tableaux peuvent être utilisés pour représenter la structure des données de l'épreuve : la table des épreuves, la table des questions et la table des réponses.
Créez une table nommée papier pour stocker les informations sur le papier test. La structure de la table est la suivante :
CREATE TABLE paper (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL
);
Créez une table nommée question pour stocker les informations sur la question. La structure du tableau est la suivante :
question CREATE TABLE (
id INT PRIMARY KEY AUTO_INCREMENT,
paper_id INT NOT NULL,
tapez ENUM('single Choice Question', 'Multiple Choice Question', 'Remplissez le vide') NOT NULL,
content TEXT NOT NULL,
options TEXT,
FOREIGN KEY (paper_id) REFERENCES paper(id)
);
Créer un tableau nommé réponse pour stocker les informations de réponse de la question. La structure de la table est la suivante :
Réponse CREATE TABLE (
id INT PRIMARY KEY AUTO_INCREMENT,
question_id INT NOT NULL,
réponse TEXT NOT NULL,
FOREIGN KEY (question_id) REFERENCES question(id)
);
Ce qui précède est le tableau de la structure de la base de données, nous devons ensuite implémenter la fonction d'importation des épreuves.
Tout d'abord, nous devons créer une page pour importer des épreuves. La page doit contenir un bouton de téléchargement pour sélectionner un fichier et un bouton de soumission.
<form action="import.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file" accept=".json"> <button type="submit">导入试卷</button> </form>
Dans la page d'importation du papier test, nous devons traiter la demande d'importation du papier test et analyser le fichier téléchargé. Côté serveur, nous pouvons utiliser la fonction json_decode de PHP pour analyser le fichier JSON et utiliser des instructions SQL pour stocker les données du test dans la base de données.
$file = $_FILES['file']['tmp_name']; $json = file_get_contents($file); $data = json_decode($json, true); $title = $data['title']; $questions = $data['questions']; // 存储试卷信息 $sql = "INSERT INTO paper (title) VALUES ('$title')"; $result = mysqli_query($conn, $sql); $paper_id = mysqli_insert_id($conn); // 存储题目信息 foreach ($questions as $question) { $type = $question['type']; $content = $question['content']; $options = $question['options']; $sql = "INSERT INTO question (paper_id, type, content, options) VALUES ('$paper_id', '$type', '$content', '$options')"; $result = mysqli_query($conn, $sql); $question_id = mysqli_insert_id($conn); // 存储答案信息 $answer = $question['answer']; $sql = "INSERT INTO answer (question_id, answer) VALUES ('$question_id', '$answer')"; $result = mysqli_query($conn, $sql); }
2. Implémentation de la fonction d'exportation du papier test
La mise en œuvre de la fonction d'exportation du papier test est relativement simple. Il vous suffit de retirer les données du papier test de la base de données et de les exporter au format JSON.
Tout d'abord, nous devons créer une page pour exporter les épreuves de test et ajouter un bouton pour déclencher l'exportation.
<button onclick="exportPaper()">导出试卷</button> <script> function exportPaper() { window.location.href = 'export.php'; } </script>
Dans la page d'exportation du papier test, nous devons traiter la demande d'exportation du papier test et récupérer les données du papier test de la base de données. Ensuite, les données du papier test sont transmises à l'utilisateur au format JSON.
header('Content-Type: application/json'); header('Content-Disposition: attachment; filename="paper.json"'); $data = array(); // 获取试卷信息 $sql = "SELECT * FROM paper"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); $data['title'] = $row['title']; // 获取题目信息 $sql = "SELECT * FROM question WHERE paper_id = " . $row['id']; $result = mysqli_query($conn, $sql); $questions = array(); while ($row = mysqli_fetch_assoc($result)) { $question = array( 'type' => $row['type'], 'content' => $row['content'], 'options' => $row['options'], 'answer' => $row['answer'] ); $questions[] = $question; } $data['questions'] = $questions; echo json_encode($data);
Grâce à l'exemple de code ci-dessus, nous pouvons implémenter les fonctions d'importation et d'exportation des épreuves dans le système de réponse en ligne. Les utilisateurs peuvent importer des épreuves dans le système au format JSON et répondre aux questions dans le système ; ils peuvent également exporter des épreuves depuis le système pour faciliter la sauvegarde, le partage et l'impression des épreuves.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!