当前位置:首页 > 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
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
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实现购物车

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

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

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

相关文章

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form action=…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searchT…