ホームページ  >  記事  >  バックエンド開発  >  PHPは知識問答サイトに質問の閲覧履歴や記録機能を実装しています。

PHPは知識問答サイトに質問の閲覧履歴や記録機能を実装しています。

WBOY
WBOYオリジナル
2023-07-02 10:42:231001ブラウズ

PHP は Q&A Web サイトに質問の閲覧履歴と記録機能を実装します

インターネットの急速な発展に伴い、Q&A Web サイトはますます人気が高まっています。このような Web サイトでは、ユーザーは質問をしたり、他のユーザーから回答を得ることができます。ユーザーエクスペリエンスを向上させるために、ユーザーが以前に閲覧した質問を簡単に閲覧できるように、質問の閲覧履歴や記録機能を実装する必要がある場合があります。

この記事では、PHP を使用してこの機能を実現します。まずユーザーの閲覧履歴を保存するデータベース テーブルを作成し、次にこれらの記録を処理して表示するための対応する PHP コードを作成します。

データベース テーブルの作成

まず、ユーザーの閲覧履歴を保存するために、question_history という名前のデータベース テーブルを作成する必要があります。テーブルには次のフィールドが含まれます:

  • id: 主キー、レコードの一意の識別子
  • user_id: ユーザーと閲覧履歴を関連付けるために使用されるユーザーの一意の識別子
  • question_id: 閲覧した質問の一意の識別子
  • timestamp: レコードを時間順に並べ替えるのに使用されるレコードのタイムスタンプ

作成する SQL ステートメントは次のとおりです。 question_history テーブル:

CREATE TABLE `question_history` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `question_id` int(11) NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

PHP コードの実装

次に、ユーザーの閲覧履歴を処理して表示するための PHP コードを記述する必要があります。まず、ユーザーの閲覧履歴をデータベース テーブルに挿入する関数を作成する必要があります。この関数は、ユーザーの一意の識別子と、表示されている質問の一意の識別子の 2 つのパラメーターを受け入れます。

function insertQuestionHistory($user_id, $question_id) {
  // 创建数据库连接
  $conn = new mysqli("localhost", "username", "password", "database");

  // 检查连接是否成功
  if ($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
  }

  // 插入记录到 question_history 表
  $sql = "INSERT INTO question_history (user_id, question_id) VALUES ('$user_id', '$question_id')";
  if ($conn->query($sql) === TRUE) {
    echo "浏览历史记录插入成功";
  } else {
    echo "插入错误:" . $conn->error;
  }

  // 关闭数据库连接
  $conn->close();
}

次に、データベースからユーザーの閲覧履歴を取得する関数を作成できます。この関数は、ユーザーの一意の識別子もパラメーターとして受け取り、ユーザーの閲覧履歴を含む配列を返します。

function getQuestionHistory($user_id) {
  // 创建数据库连接
  $conn = new mysqli("localhost", "username", "password", "database");

  // 检查连接是否成功
  if ($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
  }

  // 查询 question_history 表中的记录
  $sql = "SELECT * FROM question_history WHERE user_id = '$user_id' ORDER BY timestamp DESC";
  $result = $conn->query($sql);

  // 将查询结果转换为数组
  $history = array();
  if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
      $history[] = $row;
    }
  }

  // 关闭数据库连接
  $conn->close();

  // 返回浏览历史记录数组
  return $history;
}

最後に、上記の関数を使用してユーザーの閲覧履歴を表示できます。閲覧履歴配列を反復処理して、各レコードを出力できます。

$user_id = 1; // 假设用户的唯一标识符为 1

// 获取用户的浏览历史记录
$history = getQuestionHistory($user_id);

// 打印浏览历史记录
foreach ($history as $row) {
  echo "问题ID:" . $row['question_id'] . ",浏览时间:" . $row['timestamp'] . "<br>";
}

概要

上記の PHP コード例により、ナレッジ Q&A Web サイトに質問の閲覧履歴と記録機能を実装することができました。ユーザーは、データベース テーブルの挿入とクエリによって閲覧履歴を記録および取得し、PHP コードを通じてユーザーに表示できます。このような機能により、ユーザー エクスペリエンスが向上し、ユーザーが以前に閲覧した質問を簡単に表示できるようになります。

以上がPHPは知識問答サイトに質問の閲覧履歴や記録機能を実装しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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