当前位置:首页 > PHP

php实现简单购物车

2026-02-27 18:36:25PHP

PHP 实现简单购物车

创建数据库表

购物车功能通常需要存储商品信息和用户选择的商品。创建一个简单的数据库表结构:

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    description TEXT
);

CREATE TABLE cart (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT NOT NULL,
    quantity INT NOT NULL DEFAULT 1,
    session_id VARCHAR(255) NOT NULL,
    FOREIGN KEY (product_id) REFERENCES products(id)
);

添加商品到购物车

使用 PHP 将商品添加到购物车,通常通过会话(Session)或数据库存储购物车信息。

<?php
session_start();

function addToCart($productId, $quantity = 1) {
    if (!isset($_SESSION['cart'])) {
        $_SESSION['cart'] = [];
    }

    if (isset($_SESSION['cart'][$productId])) {
        $_SESSION['cart'][$productId] += $quantity;
    } else {
        $_SESSION['cart'][$productId] = $quantity;
    }
}

// 示例:添加商品 ID 为 1 的商品到购物车
addToCart(1, 2);
?>

显示购物车内容

从会话或数据库中读取购物车内容并显示。

php实现简单购物车

<?php
session_start();

function getCartItems() {
    if (!isset($_SESSION['cart']) || empty($_SESSION['cart'])) {
        return [];
    }

    $cartItems = [];
    foreach ($_SESSION['cart'] as $productId => $quantity) {
        // 假设从数据库获取商品信息
        $product = getProductById($productId);
        if ($product) {
            $cartItems[] = [
                'product' => $product,
                'quantity' => $quantity
            ];
        }
    }
    return $cartItems;
}

function getProductById($id) {
    // 模拟从数据库获取商品信息
    $products = [
        1 => ['id' => 1, 'name' => '商品1', 'price' => 10.99],
        2 => ['id' => 2, 'name' => '商品2', 'price' => 20.50]
    ];
    return $products[$id] ?? null;
}

$cartItems = getCartItems();
?>

<ul>
<?php foreach ($cartItems as $item): ?>
    <li>
        <?php echo $item['product']['name']; ?> - 
        <?php echo $item['quantity']; ?> × 
        <?php echo $item['product']['price']; ?> = 
        <?php echo $item['quantity'] * $item['product']['price']; ?>
    </li>
<?php endforeach; ?>
</ul>

更新购物车数量

允许用户修改购物车中商品的数量。

<?php
session_start();

function updateCartItem($productId, $quantity) {
    if (isset($_SESSION['cart'][$productId])) {
        if ($quantity <= 0) {
            unset($_SESSION['cart'][$productId]);
        } else {
            $_SESSION['cart'][$productId] = $quantity;
        }
    }
}

// 示例:更新商品 ID 为 1 的数量为 3
updateCartItem(1, 3);
?>

移除购物车商品

提供从购物车中移除商品的功能。

php实现简单购物车

<?php
session_start();

function removeFromCart($productId) {
    if (isset($_SESSION['cart'][$productId])) {
        unset($_SESSION['cart'][$productId]);
    }
}

// 示例:移除商品 ID 为 1 的商品
removeFromCart(1);
?>

计算购物车总价

计算购物车中所有商品的总价格。

<?php
session_start();

function calculateTotal() {
    $total = 0;
    $cartItems = getCartItems();
    foreach ($cartItems as $item) {
        $total += $item['product']['price'] * $item['quantity'];
    }
    return $total;
}

$total = calculateTotal();
echo "总价: " . $total;
?>

清空购物车

提供清空购物车的功能。

<?php
session_start();

function clearCart() {
    $_SESSION['cart'] = [];
}

// 示例:清空购物车
clearCart();
?>

使用数据库存储购物车

如果需要持久化存储购物车数据,可以将购物车信息保存到数据库中。

<?php
function addToCartDB($productId, $sessionId, $quantity = 1) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
    $stmt = $pdo->prepare("INSERT INTO cart (product_id, session_id, quantity) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE quantity = quantity + ?");
    $stmt->execute([$productId, $sessionId, $quantity, $quantity]);
}

// 示例:添加商品到数据库购物车
addToCartDB(1, session_id(), 2);
?>

安全注意事项

  • 验证用户输入,防止 SQL 注入。
  • 使用预处理语句处理数据库操作。
  • 对会话 ID 进行安全处理,防止会话劫持。

标签: 购物车简单
分享给朋友:

相关文章

php购物车功能实现

php购物车功能实现

数据库设计 购物车功能通常需要设计数据库表来存储商品和用户信息。常见的表包括: products 表:存储商品信息,如商品ID、名称、价格、库存等。 users 表:存储用户信息,如用户ID、用户名…

vue 实现简单登录

vue 实现简单登录

实现 Vue 简单登录功能 创建登录组件 在 Vue 项目中创建一个登录组件 Login.vue,包含用户名和密码输入框以及登录按钮。 <template> <div clas…

vue实现简单的store

vue实现简单的store

Vue 实现简单的 Store 在 Vue 中可以通过多种方式实现简单的状态管理(Store),以下介绍几种常见方法: 使用 Vue 的响应式 API 通过 reactive 或 ref 创建响应式…

react 简单table实现

react 简单table实现

基础表格实现 使用 React 实现简单表格可以通过原生 HTML 的 <table> 标签结合动态数据渲染完成。以下是一个基础示例,展示如何通过数组数据动态生成表格内容: impo…

react实现简单的modal

react实现简单的modal

实现 React Modal 的基本方法 使用 React 创建一个简单的 Modal 组件可以通过以下方式实现: 创建 Modal 组件文件 import React from "react";…

css3制作简单动画

css3制作简单动画

CSS3 制作简单动画的方法 CSS3 提供了多种方式制作动画,主要包括 transition 和 animation 两种核心方法。以下是具体实现方式: 使用 transition 实现过渡动画…