当前位置:首页 > 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)
);

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

// 连接数据库
$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);

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

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']]);
}

注意事项

php实现观看记录

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

标签: php
分享给朋友:

相关文章

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先进…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php 实现mvc

php 实现mvc

PHP 实现 MVC 架构的方法 MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离业务逻辑、用户界面和用户输入。以下是 PHP 实现 MVC 架构的关键步骤:…

php实现注册登陆

php实现注册登陆

PHP 注册功能实现 创建数据库表结构(MySQL示例): CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…

php下载文件实现

php下载文件实现

PHP 下载文件实现方法 使用 header() 函数强制下载 设置合适的 HTTP 头信息,强制浏览器下载文件而非直接打开。 $file_path = '/path/to/file.pdf'; $…

php多态实现

php多态实现

PHP 多态的实现方法 多态是面向对象编程的三大特性之一,允许不同类的对象对同一消息做出响应。PHP 主要通过以下方式实现多态: 通过继承和方法重写 子类继承父类并重写父类方法,实现不同子类对同一方…