当前位置:首页 > PHP

php实现购物车

2026-02-27 10:25:01PHP

使用PHP实现购物车功能

数据库设计

创建一个数据库表存储购物车信息,例如:

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

添加商品到购物车

使用PHP处理表单提交,将商品添加到购物车:

<?php
session_start();
$productId = $_POST['product_id'];
$quantity = $_POST['quantity'];
$userId = $_SESSION['user_id'];

$sql = "INSERT INTO cart (user_id, product_id, quantity) VALUES (?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$userId, $productId, $quantity]);
?>

显示购物车内容

查询数据库获取当前用户的购物车商品:

php实现购物车

<?php
session_start();
$userId = $_SESSION['user_id'];

$sql = "SELECT p.name, p.price, c.quantity 
        FROM cart c 
        JOIN products p ON c.product_id = p.id 
        WHERE c.user_id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$userId]);
$cartItems = $stmt->fetchAll();
?>

<ul>
<?php foreach ($cartItems as $item): ?>
    <li><?= $item['name'] ?> - 价格: <?= $item['price'] ?> - 数量: <?= $item['quantity'] ?></li>
<?php endforeach; ?>
</ul>

更新购物车商品数量

处理修改商品数量的请求:

<?php
session_start();
$cartId = $_POST['cart_id'];
$newQuantity = $_POST['quantity'];

$sql = "UPDATE cart SET quantity = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$newQuantity, $cartId]);
?>

从购物车移除商品

处理删除商品的请求:

php实现购物车

<?php
session_start();
$cartId = $_POST['cart_id'];

$sql = "DELETE FROM cart WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$cartId]);
?>

计算购物车总价

在显示购物车时计算总价格:

<?php
$total = 0;
foreach ($cartItems as $item) {
    $total += $item['price'] * $item['quantity'];
}
?>
<p>总价: <?= $total ?></p>

使用Session实现临时购物车

对于未登录用户,可以使用Session存储购物车数据:

<?php
session_start();

if (!isset($_SESSION['cart'])) {
    $_SESSION['cart'] = [];
}

// 添加商品
$_SESSION['cart'][$productId] = [
    'quantity' => $quantity,
    'name' => $productName,
    'price' => $productPrice
];
?>

清空购物车

提供清空购物车的功能:

<?php
session_start();
$userId = $_SESSION['user_id'];

$sql = "DELETE FROM cart WHERE user_id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$userId]);
?>

标签: 购物车php
分享给朋友:

相关文章

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php实现异步

php实现异步

PHP 实现异步的方法 PHP 本身是同步执行的脚本语言,但可以通过以下方法模拟异步操作或实现异步效果: 使用多进程(pcntl_fork) 通过 pcntl_fork 创建子进程实现异步,适用于…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…