Heim  >  Artikel  >  Backend-Entwicklung  >  Wie man mit PHP eine einfache Online-Prüfungsfunktion entwickelt

Wie man mit PHP eine einfache Online-Prüfungsfunktion entwickelt

PHPz
PHPzOriginal
2023-09-21 09:13:411727Durchsuche

Wie man mit PHP eine einfache Online-Prüfungsfunktion entwickelt

Um mit PHP eine einfache Online-Prüfungsfunktion zu entwickeln, sind spezifische Codebeispiele erforderlich

Mit der rasanten Entwicklung des Internets haben immer mehr Schulen und Institutionen damit begonnen, Online-Prüfungen zur Bewertung zu nutzen. Als in der Webentwicklung weit verbreitete Programmiersprache kann PHP problemlos einfache Online-Prüfungsfunktionen implementieren. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP ein einfaches Online-Prüfungssystem entwickeln, und es werden spezifische Codebeispiele bereitgestellt.

1. Datenbankdesign
Das Online-Prüfungssystem muss eine Datenbank verwenden, um Prüfungsfragen und Benutzerantworten zu speichern. Um dies zu erreichen, können wir die MySQL-Datenbank verwenden. Erstellen Sie zunächst eine Datenbank mit dem Namen „examen“ und dann zwei Tabellen: Fragen und Benutzer.

In der Fragentabelle werden Prüfungsfrageninformationen gespeichert, einschließlich Fragen-ID (question_id), Frageninhalt (question_content) und korrekte Antwort (question_answer). Hier nehmen wir als Beispiel Multiple-Choice-Fragen, wobei wir nur eine Option als richtige Antwort verwenden.

Die SQL-Anweisung zum Erstellen der Fragentabelle lautet wie folgt:

CREATE TABLE questions (
   question_id INT AUTO_INCREMENT PRIMARY KEY,
   question_content TEXT NOT NULL,
   question_answer CHAR(1) NOT NULL
);

Die Benutzertabelle wird zum Speichern von Benutzerinformationen und Antwortstatus verwendet, einschließlich Benutzer-ID (user_id), Benutzername (username) und Benutzerantwortstatus (answers). Der Antwortstatus wird im JSON-Format gespeichert, wobei der Schlüssel die Frage-ID und der Wert die Antwort des Benutzers ist.

Die SQL-Anweisung zum Erstellen der Benutzertabelle lautet wie folgt:

CREATE TABLE users (
   user_id INT AUTO_INCREMENT PRIMARY KEY,
   username VARCHAR(50) NOT NULL,
   answers TEXT NOT NULL
);

2. Seitendesign
Das Seitendesign des Online-Prüfungssystems ist relativ einfach, einschließlich der Anmeldeseite und der Prüfungsseite.

Die Anmeldeseite (login.php) wird für die Anmeldung beim System verwendet. Nachdem Sie den Benutzernamen eingegeben haben, senden Sie das Formular ab, um die Prüfungsseite aufzurufen.

<!DOCTYPE html>
<html>
<head>
   <title>在线考试系统 - 登录</title>
</head>
<body>
   <h2>登录</h2>
   <form action="exam.php" method="POST">
      <label for="username">用户名:</label>
      <input type="text" name="username" required>
      <br><br>
      <input type="submit" value="开始考试">
   </form>
</body>
</html>

Die Prüfungsseite (exam.php) wird verwendet, um Prüfungsfragen anzuzeigen und Benutzern die Auswahl von Antworten zu ermöglichen.

<!DOCTYPE html>
<html>
<head>
   <title>在线考试系统 - 考试</title>
</head>
<body>
   <h2>考试</h2>
   <form action="submit.php" method="POST">
      <?php
         // 连接数据库
         $conn = mysqli_connect("localhost", "root", "", "exam");
         if (!$conn) {
            die("数据库连接失败:" . mysqli_connect_error());
         }

         // 查询题目
         $sql = "SELECT * FROM questions";
         $result = mysqli_query($conn, $sql);

         // 显示题目
         if (mysqli_num_rows($result) > 0) {
            while ($row = mysqli_fetch_assoc($result)) {
               echo "<h3>题目ID:" . $row['question_id'] . "</h3>";
               echo "<p>" . $row['question_content'] . "</p>";
               echo "<label><input type='radio' name='answers[" . $row['question_id'] . "]' value='A'> A</label>";
               echo "<label><input type='radio' name='answers[" . $row['question_id'] . "]' value='B'> B</label>";
               echo "<label><input type='radio' name='answers[" . $row['question_id'] . "]' value='C'> C</label>";
               echo "<label><input type='radio' name='answers[" . $row['question_id'] . "]' value='D'> D</label>";
               echo "<br><br>";
            }
         }

         // 关闭数据库连接
         mysqli_close($conn);
      ?>
      <input type="submit" value="提交答案">
   </form>
</body>
</html>

3. Antworteinreichung und Bewertungsstatistik
Nach dem Absenden der Antwort wird die eingereichte Antwort verarbeitet und die Gesamtpunktzahl berechnet.

Die Einreichungsseite (submit.php) wird verwendet, um die von Benutzern übermittelten Antworten zu verarbeiten, die Antworten des Benutzers in der Datenbank zu speichern und die Punktzahlen zu berechnen.

<?php
   // 连接数据库
   $conn = mysqli_connect("localhost", "root", "", "exam");
   if (!$conn) {
      die("数据库连接失败:" . mysqli_connect_error());
   }

   // 处理提交的答案
   $answers = $_POST['answers'];
   $username = $_COOKIE['username'];

   // 将答案存储到数据库
   $sql = "INSERT INTO users (username, answers) VALUES ('$username', '" . json_encode($answers) . "')";
   mysqli_query($conn, $sql);

   // 计算成绩
   $score = 0;
   $sql = "SELECT question_id, question_answer FROM questions";
   $result = mysqli_query($conn, $sql);
   while ($row = mysqli_fetch_assoc($result)) {
      if (isset($answers[$row['question_id']]) && $answers[$row['question_id']] == $row['question_answer']) {
         $score++;
      }
   }

   // 显示成绩
   echo "<h2>成绩:$score 分</h2>";

   // 关闭数据库连接
   mysqli_close($conn);
?>

Oben erfahren Sie, wie Sie mit PHP einfache Online-Prüfungsfunktionen entwickeln, einschließlich Datenbankdesign, Seitendesign und Implementierung der Antwortübermittlung und Bewertungsstatistik. Dieses Online-Prüfungssystem ist nur ein einfaches Beispiel, das je nach tatsächlichem Bedarf erweitert und optimiert werden kann. Ich hoffe, dieser Artikel kann Ihnen hilfreich sein!

Das obige ist der detaillierte Inhalt vonWie man mit PHP eine einfache Online-Prüfungsfunktion entwickelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn