Maison  >  Article  >  développement back-end  >  PHP implémente l'historique de navigation des questions et les fonctions d'enregistrement dans le site Web de questions et réponses de connaissances.

PHP implémente l'historique de navigation des questions et les fonctions d'enregistrement dans le site Web de questions et réponses de connaissances.

WBOY
WBOYoriginal
2023-07-02 10:42:23994parcourir

PHP implémente l'historique de navigation des questions et les fonctions d'enregistrement sur le site Web Q&A

Avec le développement rapide d'Internet, le site Web Q&A devient de plus en plus populaire. Sur un tel site Web, les utilisateurs peuvent poser des questions et obtenir des réponses d’autres utilisateurs. Afin d'améliorer l'expérience utilisateur, nous devons parfois implémenter des fonctions d'historique de navigation et d'enregistrement des questions afin que les utilisateurs puissent facilement consulter les questions précédemment consultées.

Dans cet article, nous utiliserons PHP pour implémenter cette fonctionnalité. Nous allons d'abord créer une table de base de données pour stocker l'historique de navigation de l'utilisateur, puis écrire le code PHP correspondant pour traiter et afficher ces enregistrements.

Créer une table de base de données

Tout d'abord, nous devons créer une table de base de données nommée question_history pour enregistrer l'historique de navigation de l'utilisateur. Le tableau contient les champs suivants :

  • id : clé primaire, identifiant unique de l'enregistrement
  • user_id : identifiant unique de l'utilisateur, utilisé pour associer les utilisateurs et l'historique de navigation
  • question_id : identifiant unique de la question consultée
  • timestamp : horodatage enregistré, utilisé pour trier les enregistrements par heure

Ce qui suit est l'instruction SQL pour créer la table 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;

Implémentation du code PHP

Ensuite, nous devons écrire du code PHP pour traiter et afficher la navigation de l'utilisateur Enregistrement historique. Tout d’abord, nous devons écrire une fonction pour insérer l’historique de navigation de l’utilisateur dans une table de base de données. Cette fonction accepte deux paramètres : l'identifiant unique de l'utilisateur et l'identifiant unique de la question consultée.

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();
}

Ensuite, nous pouvons écrire une fonction pour obtenir l'historique de navigation de l'utilisateur à partir de la base de données. Cette fonction reçoit également l'identifiant unique de l'utilisateur en paramètre et renvoie un tableau contenant l'historique de navigation de l'utilisateur.

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;
}

Enfin, nous pouvons utiliser la fonction ci-dessus pour afficher l'historique de navigation de l'utilisateur. Nous pouvons parcourir le tableau de l’historique de navigation et imprimer chaque enregistrement.

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

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

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

Résumé

Grâce à l'exemple de code PHP ci-dessus, nous avons implémenté avec succès l'historique de navigation des questions et les fonctions d'enregistrement dans le site Web de questions-réponses de connaissances. Les utilisateurs peuvent enregistrer et obtenir leur historique de navigation en insérant et en interrogeant des tables de base de données, et l'afficher à l'utilisateur via le code PHP. Une telle fonction peut améliorer l’expérience utilisateur et permettre aux utilisateurs de visualiser plus facilement les questions consultées précédemment.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn