当前位置:首页 > PHP

php实现收藏功能实现

2026-01-30 04:11:08PHP

数据库设计

创建数据库表存储用户收藏信息,通常需要用户ID和收藏项ID。示例表结构:

CREATE TABLE `user_favorites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `item_id` int(11) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `user_item` (`user_id`,`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

收藏功能实现

创建收藏操作的PHP处理脚本,检查是否已收藏避免重复:

php实现收藏功能实现

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

// 获取用户ID和收藏项ID
$userId = $_POST['user_id'];
$itemId = $_POST['item_id'];

// 检查是否已收藏
$stmt = $pdo->prepare("SELECT id FROM user_favorites WHERE user_id = ? AND item_id = ?");
$stmt->execute([$userId, $itemId]);

if ($stmt->rowCount() > 0) {
    echo '已收藏';
} else {
    // 执行收藏
    $insert = $pdo->prepare("INSERT INTO user_favorites (user_id, item_id) VALUES (?, ?)");
    $insert->execute([$userId, $itemId]);
    echo '收藏成功';
}

取消收藏功能

添加取消收藏的处理逻辑:

$delete = $pdo->prepare("DELETE FROM user_favorites WHERE user_id = ? AND item_id = ?");
$delete->execute([$userId, $itemId]);
echo '已取消收藏';

前端交互

使用AJAX实现无刷新收藏操作:

php实现收藏功能实现

$('.favorite-btn').click(function() {
    let itemId = $(this).data('id');
    $.post('/favorite.php', {
        user_id: 当前用户ID,
        item_id: itemId
    }, function(response) {
        alert(response);
    });
});

安全性考虑

添加必要的安全验证:

// 验证用户登录状态
session_start();
if (!isset($_SESSION['user_id'])) {
    die('请先登录');
}

// 过滤输入
$userId = filter_var($_POST['user_id'], FILTER_VALIDATE_INT);
$itemId = filter_var($_POST['item_id'], FILTER_VALIDATE_INT);

性能优化

对于高频访问的收藏数据,可以考虑使用Redis缓存:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// 检查缓存
$cacheKey = "user_favorites:$userId";
if ($redis->sIsMember($cacheKey, $itemId)) {
    echo '已收藏';
}

标签: 功能收藏
分享给朋友:

相关文章

vue实现产品使用功能

vue实现产品使用功能

Vue 实现产品功能的关键方法 组件化开发 Vue 的核心思想是组件化,将产品功能拆分为独立可复用的组件。每个组件包含模板、逻辑和样式,例如产品卡片组件可封装图片、名称、价格等元素。通过 props…

vue功能实现

vue功能实现

Vue 功能实现指南 Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用。以下是 Vue 功能实现的关键方法和技术。 数据绑定与响应式 Vue 的核心特性是数据绑定和响应式系统。通过…

php实现留言板功能

php实现留言板功能

PHP 留言板功能实现 数据库设计 创建数据库表 messages,包含以下字段: id:自增主键 name:留言者姓名(VARCHAR) email:留言者邮箱(VARCHAR) content:…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isset…

uniapp实现选项卡功能

uniapp实现选项卡功能

实现选项卡功能的基本方法 在uniapp中实现选项卡功能通常需要使用uni-segmented-control组件或自定义样式结合swiper组件。以下是两种常见实现方式: 使用uni-segme…

h5实现点击复制功能

h5实现点击复制功能

使用document.execCommand方法(兼容旧浏览器) 通过document.execCommand('copy')实现复制功能,需先选中文本内容。创建一个隐藏的textarea或input…