当前位置:首页 > PHP

php收藏功能实现

2026-02-27 17:56:25PHP

实现PHP收藏功能

数据库设计

创建收藏表需要包含用户ID和收藏项ID等字段

CREATE TABLE favorites (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    item_id INT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (item_id) REFERENCES items(id),
    UNIQUE KEY (user_id, item_id)
);

添加收藏功能

处理用户添加收藏的请求

function addFavorite($userId, $itemId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
    $stmt = $pdo->prepare("INSERT INTO favorites (user_id, item_id) VALUES (?, ?)");
    return $stmt->execute([$userId, $itemId]);
}

移除收藏功能

处理用户取消收藏的请求

function removeFavorite($userId, $itemId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
    $stmt = $pdo->prepare("DELETE FROM favorites WHERE user_id = ? AND item_id = ?");
    return $stmt->execute([$userId, $itemId]);
}

检查收藏状态

验证用户是否已收藏某项目

function isFavorite($userId, $itemId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM favorites WHERE user_id = ? AND item_id = ?");
    $stmt->execute([$userId, $itemId]);
    return $stmt->fetchColumn() > 0;
}

获取用户收藏列表

显示用户所有收藏项目

function getUserFavorites($userId) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
    $stmt = $pdo->prepare("SELECT items.* FROM items JOIN favorites ON items.id = favorites.item_id WHERE favorites.user_id = ?");
    $stmt->execute([$userId]);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

前端交互实现

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

php收藏功能实现

$('.favorite-btn').click(function() {
    const itemId = $(this).data('item-id');
    $.post('favorite.php', {action: 'toggle', item_id: itemId}, function(response) {
        if(response.status === 'added') {
            $(this).addClass('active');
        } else {
            $(this).removeClass('active');
        }
    });
});

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

相关文章

vue实现账号注册功能

vue实现账号注册功能

实现账号注册功能 在Vue中实现账号注册功能通常需要结合前端表单和后端API交互。以下是一个完整的实现方案: 创建注册表单组件 新建一个Register.vue组件,包含基本的注册表单字段: &l…

vue实现插件功能

vue实现插件功能

Vue 插件实现方法 安装与注册插件 在 Vue 项目中,插件通常以独立模块形式存在。通过 Vue.use() 方法注册插件,该方法会自动调用插件的 install 函数。 // 引入插件 imp…

vue各种功能实现

vue各种功能实现

Vue 基础功能实现 数据绑定与响应式更新 使用 v-model 实现表单元素与数据的双向绑定,数据变更自动更新视图。 示例: <input v-model="message"> &…

vue实现修改功能

vue实现修改功能

Vue 实现修改功能的方法 数据绑定与表单处理 使用v-model实现双向数据绑定,快速获取表单输入值。适用于表单类修改场景: <template> <input v-mode…

vue 实现打印功能

vue 实现打印功能

使用 vue-print-nb 插件 安装 vue-print-nb 插件: npm install vue-print-nb --save 在 main.js 中引入并注册插件: import…

vue实现文件功能

vue实现文件功能

Vue 实现文件上传功能 使用 Vue 实现文件上传功能可以通过原生 HTML 的 <input type="file"> 结合 Vue 的事件处理和 HTTP 请求库(如 Axios)来…