PHP 实现知识问答网站中的问题讨论和答案编辑功能
在现如今信息爆炸的时代,知识问答网站成为了人们获取知识和交流经验的重要平台。对于开发人员来说,实现一个类似于 Stack Overflow 的问题讨论和答案编辑功能是一项非常有挑战性的任务。本文将介绍如何使用 PHP 实现这样一个功能,并提供代码示例。
- 数据库设计和创建
首先,我们需要设计和创建一个数据库来存储问题和答案的信息。在这个示例中,我们将使用 MySQL 数据库,并创建两个表:questions 和 answers。
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 );
questions 表用于存储问题的标题、内容和创建时间,answers 表用于存储答案的内容、所属问题的 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 页面来显示问题详情和答案。并且,通过提交问题和答案的表单,将数据保存到数据库中。
总结
通过 PHP 实现一个知识问答网站中的问题讨论和答案编辑功能并不难,我们只需要创建数据库来存储问题和答案的信息,并编写 PHP 代码来显示和提交数据。本文提供了一个简单的示例,你可以根据自己的需求进行扩展和改进。祝你成功实现一个功能强大的知识问答网站!
以上就是PHP 实现知识问答网站中的问题讨论和答案编辑功能。的详细内容,更多请关注php中文网其它相关文章!