ホームページ >バックエンド開発 >PHPチュートリアル >PHP は、知識の質問と回答の Web サイトにタグ管理と推奨機能を実装します。
PHP は、知識に関する質問と回答の Web サイトにタグ管理および推奨機能を実装します。
知識に関する質問と回答の Web サイトでは、タグ管理は非常に重要な機能であり、ユーザーが質問をより適切に分類および取得するのに役立ちます。同時に、レコメンデーション機能により、ユーザーの興味や過去の行動に基づいて関連する質問を推奨し、ユーザーエクスペリエンスを向上させることができます。この記事では、PHP を使用してこれら 2 つの機能を実現する方法を紹介します。
タグ管理機能の実装:
まず、タグテーブル(タグ)と質問テーブルを作成する必要があります。 question テーブル (質問)。タグと質問の情報を保存するために使用されます。タグ テーブルには少なくとも 2 つのフィールド (id と name) が含まれ、質問テーブルには少なくとも 3 つのフィールド (id、title、content) が含まれます。
CREATE TABLE `tag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `question` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) );
ユーザーは質問するときに対応するタグを選択できます。ユーザーが送信ボタンをクリックしたときに、タグと質問の情報を挿入する必要がありますタグテーブルと質問テーブルに入力します。
// 获取用户输入的标签和问题信息 $tags = $_POST['tags']; $title = $_POST['title']; $content = $_POST['content']; // 插入问题信息 $query = "INSERT INTO question (title, content) VALUES ('$title', '$content')"; mysql_query($query); // 插入标签信息 $questionId = mysql_insert_id(); foreach ($tags as $tag) { $query = "INSERT INTO tag (name, question_id) VALUES ('$tag', '$questionId')"; mysql_query($query); }
ユーザーはタグに基づいて関連する質問を検索できます。 SQL JOIN 操作を使用してラベル テーブルと質問テーブルを関連付け、ラベル名に基づいてフィルタリングできます。
$tag = $_GET['tag']; $query = "SELECT q.* FROM question q INNER JOIN tag t ON q.id = t.question_id WHERE t.name = '$tag'"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['title'], "<br/>"; }
レコメンド機能の実装:
レコメンド機能では、ユーザーの過去の行動と履歴に基づいてタグを取得する必要があります。 pass ユーザーが頻繁に使用するタグを分析して推奨事項を作成します。ユーザーからの質問をクエリすることでタグを取得できます。
$userId = $_SESSION['user_id']; $query = "SELECT t.name FROM tag t INNER JOIN question q ON t.question_id = q.id WHERE q.user_id = '$userId'"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['name'], "<br/>"; }
ユーザー履歴に頻繁に表示されるタグに基づいて、対応する質問を推奨できます。 SQL の IN 操作を使用して、タグ名に基づいて関連する質問を取得できます。
$tags = implode(",", $userTags); $query = "SELECT * FROM question WHERE id NOT IN (SELECT t.question_id FROM tag t WHERE t.name IN ($tags)) LIMIT 5"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row['title'], "<br/>"; }
以上は、PHP を使用して知識質疑応答 Web サイトにタグ管理とレコメンド機能を実装する方法です。タグ管理を通じて、質問をより適切に分類して取得でき、レコメンデーション機能を通じて、ユーザーの興味や過去の行動に基づいて関連性のある質問を提供し、ユーザー エクスペリエンスを向上させることができます。もちろん、実際のアプリケーションでは、特定のニーズに応じてさらなる拡張や最適化を実行できます。
以上がPHP は、知識の質問と回答の Web サイトにタグ管理と推奨機能を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。