2023-07-02

PHP 实现知识问答网站中的问题讨论和答案编辑功能。

PHP 实现知识问答网站中的问题讨论和答案编辑功能

在现如今信息爆炸的时代,知识问答网站成为了人们获取知识和交流经验的重要平台。对于开发人员来说,实现一个类似于 Stack Overflow 的问题讨论和答案编辑功能是一项非常有挑战性的任务。本文将介绍如何使用 PHP 实现这样一个功能,并提供代码示例。

  1. 数据库设计和创建

首先,我们需要设计和创建一个数据库来存储问题和答案的信息。在这个示例中,我们将使用 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 和创建时间。

  1. 显示问题列表和问题详情

接下来,我们需要编写 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>";
}
?>
登录后复制
  1. 提交问题和答案

最后,我们需要编写 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中文网其它相关文章!

https://www.php.cn/faq/571643.html

发表回复

Your email address will not be published. Required fields are marked *