首頁  >  文章  >  後端開發  >  PHP 實作知識問答網站中的問題瀏覽記錄和記錄功能。

PHP 實作知識問答網站中的問題瀏覽記錄和記錄功能。

WBOY
WBOY原創
2023-07-02 10:42:23994瀏覽

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 程式碼將其展示給使用者。這樣的功能可以提升使用者的體驗,使用戶更方便地查看先前瀏覽過的問題。

以上是PHP 實作知識問答網站中的問題瀏覽記錄和記錄功能。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn