首頁  >  文章  >  後端開發  >  PHP 實作知識問答網站中的問題答案編輯和刪除功能。

PHP 實作知識問答網站中的問題答案編輯和刪除功能。

WBOY
WBOY原創
2023-07-01 15:27:101020瀏覽

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 官方文件或參考其他相關教學。祝你在開發中取得好的成果!

以上是PHP 實作知識問答網站中的問題答案編輯和刪除功能。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn