ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して、知識の質問と回答の Web サイトで質問の分類とタグの推奨機能を開発します。

PHP を使用して、知識の質問と回答の Web サイトで質問の分類とタグの推奨機能を開発します。

WBOY
WBOYオリジナル
2023-07-03 09:43:431244ブラウズ

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 を使用してナレッジ Q&A Web サイトで質問の分類とタグの推奨機能を開発するのに役立つことを願っています。効率的でインテリジェントな Q&A プラットフォームの構築を始めましょう。

以上がPHP を使用して、知識の質問と回答の Web サイトで質問の分類とタグの推奨機能を開発します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。