首頁 >後端開發 >php教程 >PHP 實作知識問答網站中的問題討論和答案編輯功能。

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

WBOY
WBOY原創
2023-07-02 19:07:371468瀏覽

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中文網其他相關文章!

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