CREATE TABLE `questions` ( `id` INT(11) UNSIGNED AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL, `content` TEXT NOT NULL, `user_id` INT(11) UNSIGNED NOT NULL, `created_at` DATETIME NOT NULL, `updated_at` DATETIME, PRIMARY KEY (`id`) ); CREATE TABLE `answers` ( `id` INT(11) UNSIGNED AUTO_INCREMENT, `question_id` INT(11) UNSIGNED NOT NULL, `content` TEXT NOT NULL, `user_id` INT(11) UNSIGNED NOT NULL, `created_at` DATETIME NOT NULL, `updated_at` DATETIME, PRIMARY KEY (`id`) ); CREATE TABLE `ratings` ( `id` INT(11) UNSIGNED AUTO_INCREMENT, `answer_id` INT(11) UNSIGNED NOT NULL, `user_id` INT(11) UNSIGNED NOT NULL, `rating` INT(11) NOT NULL, PRIMARY KEY (`id`) );
questions
テーブルは、質問情報 (タイトル、内容、質問者など) を保存するために使用されます。 ID 、作成時間、更新時間など); answers
テーブルは、回答情報 (質問 ID、内容、回答者 ID、作成時間、更新時間などを含む) を保存するために使用されます。 ); 評価
このテーブルは、回答の評価情報(回答ID、評価者ID、評価スコアなど)を格納するために使用されます。 index.php
ファイルを作成します。コードは次のとおりです。 <?php // index.php // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database_name'); if ($conn->connect_errno) { die('连接数据库失败'); } // 获取问题列表 $result = $conn->query("SELECT * FROM questions"); if (!$result) { die('查询数据失败'); } // 显示问题列表 while ($row = $result->fetch_assoc()) { echo '<a href="question.php?id=' . $row['id'] . '">' . $row['title'] . '</a>'; echo '<br>'; } // 关闭数据库连接 $conn->close(); ?>
question.php
のページにジャンプし、質問の詳細が表示されます。回答の内容です。 <p>次に、質問と回答の詳細を表示する question.php
ファイルを作成します。コードは次のとおりです。 <?php // question.php // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database_name'); if ($conn->connect_errno) { die('连接数据库失败'); } // 获取问题ID $question_id = $_GET['id']; // 获取问题信息 $result = $conn->query("SELECT * FROM questions WHERE id = $question_id"); if (!$result) { die('查询数据失败'); } $question = $result->fetch_assoc(); // 获取回答列表 $result = $conn->query("SELECT * FROM answers WHERE question_id = $question_id"); if (!$result) { die('查询数据失败'); } // 显示问题和回答内容 echo '<h1>' . $question['title'] . '</h1>'; echo '<p>' . $question['content'] . '</p>'; while ($row = $result->fetch_assoc()) { echo '<h2>回答:</h2>'; echo '<p>' . $row['content'] . '</p>'; } // 关闭数据库连接 $conn->close(); ?>
<h1>
タグと <p>
タグが使用されており、回答の内容には <h2>## が使用されています。 # および
< ;p> タグ。
ページの回答の下にフォームを追加して、ユーザーが回答内容を入力できるようにします。コードは次のとおりです。
<h2>我要回答:</h2> <form action="answer.php" method="POST"> <textarea name="content" rows="5" cols="50"></textarea><br> <input type="hidden" name="question_id" value="<?php echo $question_id; ?>"> <input type="submit" value="提交回答"> </form>
メソッドを使用してフォームを作成し、ユーザーが
textarea タグを通じて回答コンテンツを入力できるようにします。同時に、質問 ID が隠しフィールドに渡され、後続の処理で対応する質問に回答できるようになります。
次に、ユーザーが送信した回答を処理するための <p>answer.php ファイルを作成します。コードは次のとおりです。
<?php // answer.php // 获取回答数据 $question_id = $_POST['question_id']; $content = $_POST['content']; // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database_name'); if ($conn->connect_errno) { die('连接数据库失败'); } // 插入回答数据 $stmt = $conn->prepare("INSERT INTO answers (question_id, content) VALUES (?, ?)"); $stmt->bind_param("is", $question_id, $content); $result = $stmt->execute(); if (!$result) { die('插入数据失败'); } // 关闭数据库连接 $conn->close(); // 回到问题页面 header("Location: question.php?id=$question_id"); ?>
メソッドと
bind_param() メソッドを通じてデータベースに挿入します。最後に、ユーザーは
header() 関数を通じて質問ページにリダイレクトされます。
同様に、回答に対するユーザー評価を処理するための <p>rate.php ファイルを作成できます。コードは次のとおりです。
<?php // rate.php // 获取评价数据 $answer_id = $_GET['answer_id']; $rating = $_GET['rating']; // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database_name'); if ($conn->connect_errno) { die('连接数据库失败'); } // 更新评价数据 $stmt = $conn->prepare("INSERT INTO ratings (answer_id, rating) VALUES (?, ?)"); $stmt->bind_param("ii", $answer_id, $rating); $result = $stmt->execute(); if (!$result) { die('更新数据失败'); } // 关闭数据库连接 $conn->close(); // 回到问题页面 $question_id = $_GET['question_id']; header("Location: question.php?id=$question_id"); ?>
メソッドと
bind_param() メソッドを通じてデータベースに更新します。最後に、ユーザーは
header() 関数を通じて質問ページにリダイレクトされます。
上記の手順により、ナレッジ Q&A Web サイトに質問ディスカッションと評価機能を実装することができました。ユーザーは質問や回答を行うだけでなく、回答を評価することもできます。このような機能により、情報の正確性や信頼性が向上するだけでなく、ユーザーにとって有用な知識や情報をより適切に入手できるようになります。 <p> なお、上記例のコードは単純な例であり、実際のアプリケーションでは、システムの安全性と信頼性を確保するために、データ検証、ユーザー認証、権限制御も必要となります。 <p>参考資料: <p>
以上がPHP は、知識の質問と回答の Web サイトに質問のディスカッションと評価の機能を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。