PHP 實作知識問答網站中的問題標籤統計和搜尋功能
在知識問答網站中,問題的標籤是幫助使用者快速找到相關問題的重要識別。在本文中,我們將使用 PHP 實作一個簡單的知識問答網站,並加入問題標籤統計和搜尋功能。
首先,我們需要建立一個資料庫表來儲存問題的資訊。我們可以使用下列SQL 語句建立一個名為"questions" 的表:
CREATE TABLE `questions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, `tags` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
該表包含了以下欄位:
id
:問題的唯一標識,使用自增長的整數類型。 title
:問題的標題,使用字串類型。 content
:問題的內容,使用文字類型。 tags
:問題的標籤,多個標籤之間使用逗號分隔,使用字串類型。 接下來,我們需要建立一個 PHP 文件,用於處理問題的標籤統計和搜尋功能。假設我們的PHP 檔案名稱為"question_search.php",以下是檔案的內容:
<?php // 连接数据库 $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接数据库失败: " . $conn->connect_error); } // 统计问题标签 $sql = "SELECT tags, COUNT(*) as count FROM questions GROUP BY tags"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "标签:" . $row["tags"] . ",问题数量:" . $row["count"] . "<br>"; } } else { echo "暂无标签"; } // 搜索问题 $search = $_GET["search"] ?? ""; if ($search !== "") { $search = mysqli_real_escape_string($conn, $search); $sql = "SELECT * FROM questions WHERE title LIKE '%$search%' OR content LIKE '%$search%'"; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "标题:" . $row["title"] . "<br>内容:" . $row["content"] . "<br>标签:" . $row["tags"] . "<br><br>"; } } else { echo "暂无搜索结果"; } } // 关闭数据库连接 $conn->close(); ?>
上述程式碼的功能如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>知识问答网站</title> </head> <body> <h1>知识问答网站</h1> <h2>问题标签统计</h2> <?php include("question_search.php"); ?> <h2>搜索问题</h2> <form action="question_search.php" method="get"> <input type="text" name="search" placeholder="请输入关键词"> <button type="submit">搜索</button> </form> </body> </html>
以上是PHP 實作知識問答網站中的問題標籤統計和搜尋功能。的詳細內容。更多資訊請關注PHP中文網其他相關文章!