当前位置:首页 > PHP

php购物车实现代码

2026-02-13 18:27:04PHP

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();
}
?>

注意事项

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

php购物车实现代码

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

相关文章

vue实现购物车动画

vue实现购物车动画

实现购物车动画的步骤 使用 Vue 的过渡系统 Vue 提供了 <transition> 和 <transition-group> 组件,可以方便地实现动画效果。购物车动画通常…

php实现文件下载代码

php实现文件下载代码

实现文件下载的基本方法 使用PHP实现文件下载的核心是通过设置HTTP头部信息,强制浏览器触发下载行为而非直接显示文件内容。 $file_path = 'path/to/your/file.ext'…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

vue实现代码

vue实现代码

以下是Vue实现常见功能的代码示例,涵盖基础语法、组件通信、状态管理等核心内容: 基础模板语法 <template> <div> <h1>{{ mes…

vue实现网站代码

vue实现网站代码

Vue 实现网站代码的基本步骤 安装 Vue.js 通过 npm 或 CDN 引入 Vue.js。使用 npm 安装:npm install vue。或者直接在 HTML 文件中引入 Vue CDN:…

代码雨实现vue

代码雨实现vue

实现代码雨效果(Vue版) 使用Vue实现代码雨效果可以通过Canvas绘制结合动画帧实现。以下是完整实现方案: 核心代码结构 <template> <div class="c…