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免费学习笔记(深入)”;
<?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中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号