ホームページ >バックエンド開発 >PHPチュートリアル >PHPは知識問答サイトにおける質問回答の編集・削除機能を実装しています。

PHPは知識問答サイトにおける質問回答の編集・削除機能を実装しています。

WBOY
WBOYオリジナル
2023-07-01 15:27:101042ブラウズ

PHP は、ナレッジ質疑応答 Web サイトの質問回答の編集および削除機能を実装します。

ナレッジ質疑応答 Web サイトでは、質問と回答の品質を確保するために、ユーザーが次の操作を行う必要があることがよくあります。公開された質問と回答の編集、削除が操作できます。 PHP は、データ処理とデータベース操作のための強力な機能を備えた一般的に使用されるバックエンド プログラミング言語であり、これらの機能の実装に非常に適しています。この記事では、ナレッジQ&Aサイトの質問回答編集・削除機能をPHPを使って実装する方法を紹介します。

1. データベースの設計

まず、質問と回答の情報を保存するデータベースを設計する必要があります。質問のタイトル、内容、公開時刻、および回答の内容と公開時刻を保存する必要があるとします。質問の情報を保存するための「質問」というテーブルと、回答の情報を保存するための「回答」というテーブルを作成できます。

questions テーブルのデザインは次のとおりです:

CREATE TABLE question (

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

);

answers テーブルのデザインは次のとおりです:

CREATE TABLE 回答 (

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

);

回答テーブルでは、question_id 外部キーを使用して回答と質問を関連付けます。 ON DELETE CASCADE 設定を通じて質問が削除されると、それに関連付けられた回答も自動的に削除されます。

2. 質問と回答の編集機能を実装する

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 ステートメントを実行して更新します。ユーザーがデータベースに送信した質問の内容。最後に、ヘッダー関数を使用してユーザーを問題の詳細ページにリダイレクトします。

3. 質問と回答の削除機能を実装する

質問の編集と同様に、ユーザーが削除したい質問または回答のIDをHTTPリクエストデータを通じて取得することもできます。次に、データベースに接続して 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 ステートメントを準備して実行します。最後に、ヘッダー関数は、ユーザーを質問の詳細ページにリダイレクトするためにも使用されます。

結論

ナレッジ質問と回答の Web サイトに質問回答の編集および削除機能を PHP 経由で実装するのは非常に簡単で、データベースに接続して対応する SQL ステートメントを実行するだけです。 。この記事が、PHP を使用してこれらの機能を実現する方法を理解するのに役立つことを願っています。それでも質問や疑問がある場合は、公式の PHP ドキュメントを確認するか、他の関連チュートリアルを参照してください。あなたの発展で良い結果が得られることを祈っています!

以上がPHPは知識問答サイトにおける質問回答の編集・削除機能を実装しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。