>  기사  >  백엔드 개발  >  PHP는 지식질문답변 웹사이트에서 질문 검색 기록 및 기록 기능을 구현합니다.

PHP는 지식질문답변 웹사이트에서 질문 검색 기록 및 기록 기능을 구현합니다.

WBOY
WBOY원래의
2023-07-02 10:42:23992검색

PHP는 Q&A 사이트에 질문 검색 기록 및 녹음 기능을 구현합니다.

인터넷의 급속한 발전과 함께 Q&A 사이트가 점점 더 인기를 얻고 있습니다. 이러한 웹사이트에서 사용자는 다른 사용자에게 질문하고 답변을 얻을 수 있습니다. 사용자 경험을 향상시키기 위해 때때로 사용자가 이전에 검색한 질문을 쉽게 볼 수 있도록 질문 검색 기록 및 녹음 기능을 구현해야 합니다.

이 기사에서는 PHP를 사용하여 이 기능을 구현하겠습니다. 먼저 사용자의 검색 기록을 저장하기 위한 데이터베이스 테이블을 만든 다음 해당 PHP 코드를 작성하여 이러한 기록을 처리하고 표시합니다.

데이터베이스 테이블 만들기

먼저 사용자의 검색 기록을 저장하기 위해question_history라는 데이터베이스 테이블을 만들어야 합니다. 테이블에는 다음 필드가 포함됩니다.

  • id: 기본 키, 레코드의 고유 식별자
  • user_id: 사용자 및 검색 기록을 연결하는 데 사용되는 사용자의 고유 식별자
  • question_id: 보고 있는 질문의 고유 식별자
  • 타임스탬프: 레코드를 시간별로 정렬하는 데 사용되는 기록된 타임스탬프

다음은 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>";
}

Summary

위의 PHP 코드 예제를 통해 지식 Q&A 사이트에 질문 검색 이력 및 녹음 기능을 성공적으로 구현했습니다. 사용자는 데이터베이스 테이블을 삽입하고 쿼리하여 검색 기록을 기록하고 얻을 수 있으며 PHP 코드를 통해 사용자에게 표시할 수 있습니다. 이러한 기능은 사용자 경험을 향상시키고 사용자가 이전에 탐색한 질문을 더 쉽게 볼 수 있게 해줍니다.

위 내용은 PHP는 지식질문답변 웹사이트에서 질문 검색 기록 및 기록 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.