首页 > 文章列表 > PHP 实现知识问答网站中的问题答案编辑和删除功能。

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

删除 编辑 知识问答
322 2023-07-06

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

在知识问答网站中,为了保证问题和答案的质量,用户经常需要对已经发布的问题和答案进行编辑和删除操作。PHP 是一种常用的后端编程语言,具备强大的处理数据和数据库操作的能力,非常适合用来实现这些功能。本文将介绍如何使用 PHP 实现知识问答网站中的问题答案编辑和删除功能。

一、数据库设计

首先,我们需要设计一个数据库来存储问题和答案的信息。假设我们需要存储问题的标题、内容和发布时间,以及答案的内容和发布时间。我们可以创建一个名为 "questions" 的表来存储问题的信息,并创建一个名为 "answers" 的表来存储答案的信息。

questions 表的设计如下:

CREATE TABLE questions (

id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

answers 表的设计如下:

CREATE TABLE answers (

id INT AUTO_INCREMENT PRIMARY KEY,
question_id INT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (question_id) REFERENCES questions(id) ON DELETE CASCADE

);

在 answers 表中,我们使用 question_id 外键来关联答案和问题。并且通过 ON DELETE CASCADE 设置当问题被删除时,与之关联的答案也会被自动删除。

二、实现问题答案编辑功能

在 PHP 中,我们可以通过 HTTP 请求的数据来获取用户提交的问题和答案内容。然后,通过连接数据库并执行 SQL 语句来进行问题和答案的编辑操作。

<?php
// 获取用户提交的问题内容
$title = $_POST['title'];
$content = $_POST['content'];

// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=your_database_name', 'your_username', 'your_password');

// 编辑问题
$id = $_POST['question_id'];
$stmt = $pdo->prepare("UPDATE questions SET title=?, content=? WHERE id=?");
$stmt->execute([$title, $content, $id]);

// 跳转回问题详情页
header("Location: question.php?id=$id");
exit;
?>

上述代码中,我们首先获取用户提交的问题标题和内容,然后使用 prepare 方法来准备 SQL 语句,并使用 execute 方法来执行 SQL 语句,将用户提交的问题内容更新到数据库中。最后,使用 header 函数将用户重定向到问题详情页。

三、实现问题答案删除功能

与问题编辑类似,我们同样可以通过 HTTP 请求的数据来获取用户要删除的问题或答案的 ID。然后,通过连接数据库并执行 SQL 语句来进行删除操作。

<?php
// 获取用户提交的问题或答案 ID
$id = $_GET['id'];

// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=your_database_name', 'your_username', 'your_password');

if (isset($_GET['question'])) {
    // 删除问题及其关联的答案
    $stmt = $pdo->prepare("DELETE FROM questions WHERE id=?");
    $stmt->execute([$id]);
} else {
    // 删除答案
    $stmt = $pdo->prepare("DELETE FROM answers WHERE id=?");
    $stmt->execute([$id]);
}

// 跳转回问题详情页
header("Location: question.php");
exit;
?>

上述代码中,我们首先判断用户要删除的是问题还是答案,然后根据不同的情况准备相应的 SQL 语句并执行。最后,同样使用 header 函数将用户重定向回问题详情页。

结语

通过 PHP 实现知识问答网站中的问题答案编辑和删除功能非常简单,只需要连接数据库并执行相应的 SQL 语句即可。希望本文能对你理解如何使用 PHP 实现这些功能有所帮助。如果你还有任何问题或疑惑,可以查阅 PHP 官方文档或参考其他相关教程。祝你在开发中取得好的成果!