ホームページ > バックエンド開発 > PHPチュートリアル > PHP は、ナレッジ Q&A Web サイトに質問のディスカッションと回答の編集機能を実装します。

PHP は、ナレッジ Q&A Web サイトに質問のディスカッションと回答の編集機能を実装します。

WBOY
リリース: 2023-07-02 19:10:01
オリジナル
1467 人が閲覧しました

PHP は、ナレッジ Q&A ウェブサイトでの質問ディスカッションと回答編集機能を実現します。

今日の情報爆発の時代において、ナレッジ Q&A ウェブサイトは、人々が知識を取得し、経験を交換するための重要なプラットフォームとなっています。開発者にとって、Stack Overflow と同様の質問ディスカッションおよび回答編集機能を実装することは、非常に困難な作業です。この記事では、PHP を使用してこのような機能を実装する方法を説明し、コード例を示します。

  1. データベースの設計と作成

まず、質問と回答の情報を保存するデータベースを設計して作成する必要があります。この例では、MySQL データベースを使用し、質問と回答という 2 つのテーブルを作成します。

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
);
ログイン後にコピー

質問テーブルは質問のタイトル、内容、作成時刻を保存するために使用され、回答テーブルは回答の内容、質問の 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 ページにアクセスすると質問の詳細と回答が表示されます。また、質問と回答を含むフォームを送信すると、データがデータベースに保存されます。

まとめ

ナレッジ Q&A サイトにおける質問の議論や回答の編集機能を PHP で実装することは、質問と回答の情報を格納するデータベースを作成するだけで難しくありません。データを表示および送信するための PHP コードを記述します。この記事では、独自のニーズに基づいて拡張および改善できる簡単な例を示します。強力な知識の質問と回答の Web サイトの実装が成功することを祈っています。

以上がPHP は、ナレッジ Q&A Web サイトに質問のディスカッションと回答の編集機能を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート