首页 > 文章列表 > PHP 实现知识问答网站中的问题浏览历史和记录功能。

PHP 实现知识问答网站中的问题浏览历史和记录功能。

实现 记录 浏览历史 问题浏览历史功能:
336 2023-07-01

PHP 实现知识问答网站中的问题浏览历史和记录功能

随着互联网的快速发展,知识问答网站越来越受欢迎。在这样的网站中,用户可以提出问题并获得其他用户的回答。为了提升用户体验,有时我们需要实现问题浏览历史和记录功能,让用户可以方便地查看之前浏览过的问题。

在本文中,我们将使用 PHP 来实现这一功能。我们将首先创建一个数据库表来存储用户的浏览历史记录,然后编写相应的 PHP 代码来处理和展示这些记录。

创建数据库表

首先,我们需要创建一个名为 question_history 的数据库表,用于保存用户的浏览历史记录。该表包含以下字段:

  • id: 主键,记录的唯一标识符
  • user_id: 用户的唯一标识符,用于关联用户和浏览历史记录
  • question_id: 被浏览的问题的唯一标识符
  • timestamp: 记录的时间戳,用于按照时间排序记录

下面是创建 question_history 表的 SQL 语句:

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 代码来处理和展示用户的浏览历史记录。首先,我们需要编写一个函数来将用户的浏览历史记录插入到数据库表中。这个函数可以接收两个参数:用户的唯一标识符和被浏览问题的唯一标识符。

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 代码示例,我们成功地实现了知识问答网站中的问题浏览历史和记录功能。用户可以通过插入和查询数据库表来记录和获取其浏览历史记录,并通过 PHP 代码将其展示给用户。这样的功能可以提升用户的体验,使用户更方便地查看之前浏览过的问题。