PHP は、ナレッジ Q&A ウェブサイトでの質問ディスカッションと回答編集機能を実現します。
今日の情報爆発の時代において、ナレッジ Q&A ウェブサイトは、人々が知識を取得し、経験を交換するための重要なプラットフォームとなっています。開発者にとって、Stack Overflow と同様の質問ディスカッションおよび回答編集機能を実装することは、非常に困難な作業です。この記事では、PHP を使用してこのような機能を実装する方法を説明し、コード例を示します。
まず、質問と回答の情報を保存するデータベースを設計して作成する必要があります。この例では、MySQL データベースを使用し、質問と回答という 2 つのテーブルを作成します。
CREATE TABLE questions ( id INT(11) AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, content TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE answers ( id INT(11) AUTO_INCREMENT PRIMARY KEY, question_id INT(11) NOT NULL, content TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
質問テーブルは質問のタイトル、内容、作成時刻を保存するために使用され、回答テーブルは回答の内容、質問の ID、作成時刻を保存するために使用されます。
次に、問題リストと問題の詳細を表示するための PHP コードを記述する必要があります。まず、質問のリストを表示するindex.phpというファイルを作成します。
<?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); // 查询所有问题 $query = "SELECT * FROM questions ORDER BY created_at DESC"; $result = mysqli_query($conn, $query); // 显示问题列表 while ($row = mysqli_fetch_assoc($result)) { echo "<h2><a href='question.php?id={$row['id']}'>{$row['title']}</a></h2>"; echo "<p>{$row['content']}</p>"; echo "<hr>"; } ?>
次に、質問の詳細と関連する回答を表示するための question.php というファイルを作成します。
<?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); // 获取问题 ID $id = $_GET['id']; // 查询问题的详细信息 $query = "SELECT * FROM questions WHERE id = $id"; $result = mysqli_query($conn, $query); $question = mysqli_fetch_assoc($result); // 查询问题的答案列表 $query = "SELECT * FROM answers WHERE question_id = $id ORDER BY created_at DESC"; $result = mysqli_query($conn, $query); // 显示问题和答案 echo "<h1>{$question['title']}</h1>"; echo "<p>{$question['content']}</p>"; while ($row = mysqli_fetch_assoc($result)) { echo "<h3>答案</h3>"; echo "<p>{$row['content']}</p>"; echo "<hr>"; } ?>
最後に、ユーザーが送信した質問と回答を処理するための PHP コードを記述する必要があります。ユーザーが送信した質問と回答を処理し、データベースに保存する submit.php というファイルを作成します。
<?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 提交问题 if (isset($_POST['question'])) { $title = $_POST['title']; $content = $_POST['content']; $query = "INSERT INTO questions (title, content) VALUES ('$title', '$content')"; mysqli_query($conn, $query); } // 提交答案 if (isset($_POST['answer'])) { $question_id = $_POST['question_id']; $content = $_POST['content']; $query = "INSERT INTO answers (question_id, content) VALUES ($question_id, '$content')"; mysqli_query($conn, $query); } // 重定向到问题详情页面 header("Location: question.php?id=$question_id"); exit(); } ?>
これで、index.php ページにアクセスすると質問の一覧が表示され、question.php ページにアクセスすると質問の詳細と回答が表示されます。また、質問と回答を含むフォームを送信すると、データがデータベースに保存されます。
まとめ
ナレッジ Q&A サイトにおける質問の議論や回答の編集機能を PHP で実装することは、質問と回答の情報を格納するデータベースを作成するだけで難しくありません。データを表示および送信するための PHP コードを記述します。この記事では、独自のニーズに基づいて拡張および改善できる簡単な例を示します。強力な知識の質問と回答の Web サイトの実装が成功することを祈っています。
以上がPHP は、ナレッジ Q&A Web サイトに質問のディスカッションと回答の編集機能を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。