当前位置:首页 > PHP

php购物车实现代码

2026-02-13 18:27:04PHP

php购物车实现代码

php购物车实现代码

PHP 购物车实现代码

数据库设计

创建一个名为 cart 的表,用于存储购物车信息:

CREATE TABLE cart (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    product_id INT,
    quantity INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

添加商品到购物车

<?php
session_start();
include 'db_connection.php'; // 数据库连接文件

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_to_cart'])) {
    $product_id = $_POST['product_id'];
    $quantity = $_POST['quantity'];
    $user_id = $_SESSION['user_id']; // 假设用户已登录

    // 检查商品是否已存在购物车
    $sql = "SELECT * FROM cart WHERE user_id = ? AND product_id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ii", $user_id, $product_id);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows > 0) {
        // 更新数量
        $sql = "UPDATE cart SET quantity = quantity + ? WHERE user_id = ? AND product_id = ?";
    } else {
        // 新增记录
        $sql = "INSERT INTO cart (user_id, product_id, quantity) VALUES (?, ?, ?)";
    }

    $stmt = $conn->prepare($sql);
    $stmt->bind_param("iii", $quantity, $user_id, $product_id);
    $stmt->execute();

    header("Location: cart.php");
    exit();
}
?>

显示购物车内容

<?php
session_start();
include 'db_connection.php';

$user_id = $_SESSION['user_id'];
$sql = "SELECT p.id, p.name, p.price, c.quantity 
        FROM cart c 
        JOIN products p ON c.product_id = p.id 
        WHERE c.user_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $user_id);
$stmt->execute();
$result = $stmt->get_result();

$total = 0;
while ($row = $result->fetch_assoc()) {
    $subtotal = $row['price'] * $row['quantity'];
    $total += $subtotal;

    echo "<div class='cart-item'>";
    echo "<h3>{$row['name']}</h3>";
    echo "<p>Price: {$row['price']}</p>";
    echo "<p>Quantity: {$row['quantity']}</p>";
    echo "<p>Subtotal: $subtotal</p>";
    echo "<a href='remove_from_cart.php?id={$row['id']}'>Remove</a>";
    echo "</div>";
}

echo "<div class='cart-total'>";
echo "<h3>Total: $total</h3>";
echo "</div>";
?>

从购物车移除商品

<?php
session_start();
include 'db_connection.php';

if (isset($_GET['id'])) {
    $product_id = $_GET['id'];
    $user_id = $_SESSION['user_id'];

    $sql = "DELETE FROM cart WHERE user_id = ? AND product_id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ii", $user_id, $product_id);
    $stmt->execute();

    header("Location: cart.php");
    exit();
}
?>

更新购物车商品数量

<?php
session_start();
include 'db_connection.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['update_cart'])) {
    $product_id = $_POST['product_id'];
    $quantity = $_POST['quantity'];
    $user_id = $_SESSION['user_id'];

    $sql = "UPDATE cart SET quantity = ? WHERE user_id = ? AND product_id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("iii", $quantity, $user_id, $product_id);
    $stmt->execute();

    header("Location: cart.php");
    exit();
}
?>

注意事项

  • 确保在操作购物车前验证用户登录状态
  • 对用户输入进行适当的验证和过滤
  • 考虑使用事务处理确保数据一致性
  • 可以根据需求添加更多功能,如优惠券、运费计算等

标签: 购物车代码
分享给朋友:

相关文章

vue扫码登录代码实现

vue扫码登录代码实现

Vue 扫码登录实现方案 准备工作 确保项目已安装 Vue 2/3 及相关依赖,需要后端提供生成二维码和验证扫码状态的接口。 生成二维码 使用 qrcode 库生成登录二维码,需调用后端接口获取唯一…

网页表格制作css代码

网页表格制作css代码

基础表格样式 使用CSS为HTML表格添加基础样式,包括边框、间距和背景色: table { width: 100%; border-collapse: collapse; margin…

php购物车功能的实现

php购物车功能的实现

实现购物车功能的基本方法 使用PHP实现购物车功能可以通过会话(Session)或数据库存储购物车数据。以下是两种常见方法的详细说明。 使用Session存储购物车数据 PHP的$_SESSION可…

vue论坛代码实现

vue论坛代码实现

Vue 论坛代码实现 项目初始化 使用 Vue CLI 或 Vite 创建一个新的 Vue 项目。推荐使用 Vue 3 和 Composition API。 npm create vue@lates…

vue代码实现清除缓存

vue代码实现清除缓存

清除浏览器缓存的方法 在Vue项目中清除缓存通常涉及版本控制、强制刷新或服务端配置。以下是几种常见实现方式: 修改文件名添加哈希 通过webpack配置在打包时为静态文件添加哈希值,确保每次更新后文…

react如何监控代码错误

react如何监控代码错误

监控 React 代码错误的常用方法 使用 Error Boundaries 捕获组件错误 Error Boundaries 是 React 提供的错误捕获机制,通过定义 componentDidCa…