PHP を使用してナレッジ Q&A Web サイトの質問分類とタグ推奨機能を開発する
ナレッジ共有の時代に、さまざまなタイプのナレッジ Q&A Web サイトが登場しました。ユーザーが興味のある質問をより早く見つけるためには、質問の分類やタグによるレコメンド機能が不可欠です。
この記事では、PHP を使用して、知識 Q&A Web サイトで質問の分類とタグの推奨機能を開発する方法を紹介します。これらの機能を実装する方法を示すために、例として架空の Q&A Web サイトを使用します。
まず、質問とタグの情報を保存するデータベースを作成する必要があります。次の SQL ステートメントを使用して、対応するデータ テーブルを作成できます。
CREATE TABLE `questions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `question` varchar(255) NOT NULL, `category_id` int(11) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `categories` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `tags` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `question_tag` ( `question_id` int(11) NOT NULL, `tag_id` int(11) NOT NULL, PRIMARY KEY (`question_id`, `tag_id`) );
PHP アプリケーションでは、最初にデータベースに接続する必要があります。これは、次のコードを使用して実現できます:
$host = 'localhost'; $db = 'knowledge_qa'; $user = 'username'; $password = 'password'; $conn = new PDO("mysql:host=$host;dbname=$db", $user, $password);
次に、問題分類関数を実装できます。質問と分類情報を含むフォームがあるとします。ユーザーが質問を送信すると、質問と分類情報をデータベースに挿入できます:
function createQuestion($question, $category_id) { global $conn; $sql = "INSERT INTO questions (question, category_id) VALUES (:question, :category_id)"; $stmt = $conn->prepare($sql); $stmt->bindParam(':question', $question); $stmt->bindParam(':category_id', $category_id); $stmt->execute(); return $conn->lastInsertId(); }
次に、タグの推奨機能を実装できます。ラベル情報を含むフォームがあるとします。ユーザーは既存のラベルを選択するか、新しいラベルを入力できます。データベースにタグ情報を挿入し、質問との関連付けを確立できます。
function createTag($name) { global $conn; $sql = "INSERT INTO tags (name) VALUES (:name)"; $stmt = $conn->prepare($sql); $stmt->bindParam(':name', $name); $stmt->execute(); return $conn->lastInsertId(); } function attachTagToQuestion($question_id, $tag_id) { global $conn; $sql = "INSERT INTO question_tag (question_id, tag_id) VALUES (:question_id, :tag_id)"; $stmt = $conn->prepare($sql); $stmt->bindParam(':question_id', $question_id); $stmt->bindParam(':tag_id', $tag_id); $stmt->execute(); }
上記は、PHP を使用してナレッジ Q&A Web サイトに質問分類とタグ推奨機能を実装する方法の基本的なコード例です。ユーザーが質問を送信すると、上記の関数を呼び出して、質問と関連タグの間の関連付けを作成できます。
ユーザーが Web サイトを閲覧すると、質問の分類とラベル情報に基づいてフィルタリングして推奨できます。次のコードを使用して、特定のカテゴリの下にある質問のリストを取得できます:
function getQuestionsByCategory($category_id) { global $conn; $sql = "SELECT * FROM questions WHERE category_id = :category_id"; $stmt = $conn->prepare($sql); $stmt->bindParam(':category_id', $category_id); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); }
同様に、同様のメソッドを使用して、特定のラベルの下にある質問のリストを取得することもできます:
function getQuestionsByTag($tag_id) { global $conn; $sql = "SELECT q.* FROM questions q INNER JOIN question_tag qt ON q.id = qt.question_id WHERE qt.tag_id = :tag_id"; $stmt = $conn->prepare($sql); $stmt->bindParam(':tag_id', $tag_id); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); }
以上がPHP を使用して、知識の質問と回答の Web サイトで質問の分類とタグの推奨機能を開発します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。