当前位置:首页 > PHP

php实现观看记录

2026-02-15 18:46:33PHP

PHP实现观看记录功能

在网站或应用中实现观看记录功能,通常需要记录用户浏览过的内容,并在需要时展示。以下是实现方法:

数据库设计 创建一张表存储观看记录,字段可包括:记录ID、用户ID、内容ID、观看时间等。示例SQL:

CREATE TABLE viewing_history (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    content_id INT NOT NULL,
    viewed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (content_id) REFERENCES contents(id)
);

记录观看行为 当用户访问内容页面时,插入一条记录:

php实现观看记录

// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');

// 获取用户ID和内容ID
$userId = $_SESSION['user_id'];
$contentId = $_GET['content_id']; // 从URL参数获取

// 插入观看记录
$stmt = $pdo->prepare("INSERT INTO viewing_history (user_id, content_id) VALUES (?, ?)");
$stmt->execute([$userId, $contentId]);

查询观看记录 获取用户的观看历史并按时间倒序排列:

$stmt = $pdo->prepare("SELECT c.* FROM contents c 
                      JOIN viewing_history vh ON c.id = vh.content_id 
                      WHERE vh.user_id = ? 
                      ORDER BY vh.viewed_at DESC 
                      LIMIT 10");
$stmt->execute([$userId]);
$history = $stmt->fetchAll(PDO::FETCH_ASSOC);

显示观看记录 在页面上循环输出观看记录:

php实现观看记录

foreach ($history as $item) {
    echo '<div class="history-item">';
    echo '<h3>' . htmlspecialchars($item['title']) . '</h3>';
    echo '<p>观看时间: ' . $item['viewed_at'] . '</p>';
    echo '</div>';
}

防止重复记录 可添加检查避免同一内容重复记录:

$stmt = $pdo->prepare("SELECT id FROM viewing_history 
                      WHERE user_id = ? AND content_id = ? 
                      ORDER BY viewed_at DESC LIMIT 1");
$stmt->execute([$userId, $contentId]);
$existing = $stmt->fetch();

if (!$existing) {
    // 插入新记录
    $insertStmt = $pdo->prepare("INSERT INTO viewing_history (user_id, content_id) VALUES (?, ?)");
    $insertStmt->execute([$userId, $contentId]);
} else {
    // 更新已有记录的时间
    $updateStmt = $pdo->prepare("UPDATE viewing_history SET viewed_at = CURRENT_TIMESTAMP WHERE id = ?");
    $updateStmt->execute([$existing['id']]);
}

注意事项

  • 确保用户认证系统正常工作,防止未授权访问
  • 对用户输入进行验证和过滤,防止SQL注入
  • 考虑添加分页功能处理大量历史记录
  • 可设置自动清理机制,删除过期的历史记录

标签: php
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开:…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_shi…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searc…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…