ホームページ  >  記事  >  バックエンド開発  >  PHPを使用して簡単なオンライン試験機能を開発する方法

PHPを使用して簡単なオンライン試験機能を開発する方法

PHPz
PHPzオリジナル
2023-09-21 09:13:411733ブラウズ

PHPを使用して簡単なオンライン試験機能を開発する方法

PHP を使用して簡単なオンライン試験機能を開発する方法。具体的なコード例が必要です。

インターネットの急速な発展に伴い、ますます多くの学校や機関が、導入開始 インターネット試験による評価を実施します。 Web 開発で広く使用されているプログラミング言語である PHP は、簡単なオンライン試験機能を簡単に実装できます。この記事では、PHPを使って簡単なオンライン試験システムを開発する方法と具体的なコード例を紹介します。

1. データベース設計
オンライン試験システムでは、データベースを使用して試験問題とユーザーの回答を保存する必要があります。これを実現するには、MySQL データベースを使用できます。まず、exam という名前のデータベースを作成し、次に、questions と users という 2 つのテーブルを作成します。

質問テーブルは、質問 ID (question_id)、質問の内容 (question_content)、正解 (question_answer) などの試験問題に関する情報を保存するために使用されます。ここでは、正解として 1 つの選択肢のみを使用する多肢選択式の質問を例として取り上げます。

テーブルの質問を作成する SQL ステートメントは次のとおりです。

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

users テーブルは、ユーザー ID (user_id)、ユーザー名 (username) などのユーザーの情報と回答ステータスを保存するために使用されます。 ) とユーザーの回答ステータス (回答)。回答ステータスは JSON 形式で保存されます。キーは質問 ID、値はユーザーの回答です。

users テーブルを作成する SQL ステートメントは次のとおりです。

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

2. ページ デザイン
オンライン試験システムのページ デザインは、ログイン ページと受験ページ。

ログインページ (login.php) は、ユーザーがシステムにログインするためのページであり、ユーザー名を入力した後、試験ページに入るフォームを送信します。

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

試験ページ (exam.php) は、試験問題を表示し、ユーザーが回答を選択できるようにするために使用されます。

<!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. 回答の送信とスコアの統計
回答の送信後、送信された回答は処理され、合計スコアが計算されます。

送信ページ (submit.php) は、ユーザーが送信した回答を処理し、ユーザーの回答をデータベースに保存し、スコアを計算するために使用されます。

<?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);
?>

上記は、PHP を使用してデータベース設計、ページ設計、解答提出やスコア統計の実装などの簡単なオンライン試験機能を開発する方法です。このオンライン試験システムは、実際のニーズに応じて拡張および最適化できる単純な例にすぎません。この記事があなたのお役に立てば幸いです!

以上がPHPを使用して簡単なオンライン試験機能を開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。