PHP 實現知識問答網站中的問題討論和答案編輯功能
在現如今資訊爆炸的時代,知識問答網站成為了人們獲取知識和交流經驗的重要平台。對於開發人員來說,實現一個類似於 Stack Overflow 的問題討論和答案編輯功能是一項非常有挑戰性的任務。本文將介紹如何使用 PHP 實作這樣一個功能,並提供程式碼範例。
首先,我們需要設計和建立一個資料庫來儲存問題和答案的資訊。在這個範例中,我們將使用 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 和建立時間。
接下來,我們需要寫 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>"; } ?>
最後,我們需要寫 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中文網其他相關文章!