如何选择和使用PHP商城源码来搭建你的在线商店?

我可以为你提供一个详细的PHP商城源码示例,这个示例将包括基本的商城功能,如商品展示、购物车和订单处理。

如何选择和使用PHP商城源码来搭建你的在线商店?插图1

目录结构

shopping_mall/
│
├── index.php
├── product.php
├── cart.php
├── checkout.php
├── order.php
└── db.php

数据库配置 (`db.php`)

我们需要一个数据库配置文件来连接数据库。

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "shopping_mall";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

首页 (`index.php`)

这是商城的首页,展示所有商品。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Shopping Mall</title>
</head>
<body>
    <h1>Welcome to the Shopping Mall</h1>
    <table border="1">
        <tr>
            <th>Product ID</th>
            <th>Product Name</th>
            <th>Price</th>
            <th>Action</th>
        </tr>
        <?php
        include 'db.php';
        $sql = "SELECT id, name, price FROM products";
        $result = $conn->query($sql);
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo "<tr>";
                echo "<td>" . $row["id"] . "</td>";
                echo "<td>" . $row["name"] . "</td>";
                echo "<td>" . $row["price"] . "</td>";
                echo "<td><a href='product.php?id=" . $row["id"] . "'>View Product</a></td>";
                echo "</tr>";
            }
        } else {
            echo "<tr><td colspan='4'>No products found</td></tr>";
        }
        ?>
    </table>
</body>
</html>

商品详情页 (product.php)

展示单个商品的详细信息,并提供添加到购物车的选项。

如何选择和使用PHP商城源码来搭建你的在线商店?插图3

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Product Details</title>
</head>
<body>
    <h1>Product Details</h1>
    <?php
    include 'db.php';
    $product_id = $_GET['id'];
    $sql = "SELECT * FROM products WHERE id=$product_id";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        echo "<h2>" . $row["name"] . "</h2>";
        echo "<p>Price: $" . $row["price"] . "</p>";
        echo "<p>Description: " . $row["description"] . "</p>";
        echo "<form action='cart.php' method='post'>";
        echo "<input type='hidden' name='product_id' value='" . $row["id"] . "'>";
        echo "<button type='submit'>Add to Cart</button>";
        echo "</form>";
    } else {
        echo "<p>Product not found</p>";
    }
    ?>
</body>
</html>

购物车 (`cart.php`)

展示用户添加到购物车的商品,并提供结账选项。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Shopping Cart</title>
</head>
<body>
    <h1>Your Shopping Cart</h1>
    <?php
    session_start();
    include 'db.php';
    if (!isset($_SESSION['cart'])) {
        $_SESSION['cart'] = [];
    }
    if (isset($_POST['product_id'])) {
        $product_id = $_POST['product_id'];
        $sql = "SELECT * FROM products WHERE id=$product_id";
        $result = $conn->query($sql);
        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            $_SESSION['cart'][] = [
                'id' => $row['id'],
                'name' => $row['name'],
                'price' => $row['price']
            ];
        }
    }
    if (count($_SESSION['cart']) > 0) {
        echo "<table border='1'>";
        echo "<tr><th>Product ID</th><th>Product Name</th><th>Price</th></tr>";
        foreach ($_SESSION['cart'] as $item) {
            echo "<tr>";
            echo "<td>" . $item['id'] . "</td>";
            echo "<td>" . $item['name'] . "</td>";
            echo "<td>" . $item['price'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        echo "<form action='checkout.php' method='post'>";
        echo "<button type='submit'>Checkout</button>";
        echo "</form>";
    } else {
        echo "<p>Your cart is empty</p>";
    }
    ?>
</body>
</html>

结账页面 (checkout.php)

处理订单信息并生成订单。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Checkout</title>
</head>
<body>
    <h1>Checkout</h1>
    <?php
    session_start();
    include 'db.php';
    if (isset($_POST['submit'])) {
        if (count($_SESSION['cart']) > 0) {
            $total = 0;
            foreach ($_SESSION['cart'] as $item) {
                $total += $item['price'];
            }
            $sql = "INSERT INTO orders (total) VALUES ($total)";
            if ($conn->query($sql) === TRUE) {
                $order_id = $conn->insert_id;
                foreach ($_SESSION['cart'] as $item) {
                    $sql = "INSERT INTO order_items (order_id, product_id, quantity) VALUES ($order_id, $item['id'], 1)";
                    $conn->query($sql);
                }
                $_SESSION['cart'] = []; // Clear the cart after checkout
                echo "<p>Order placed successfully! Order ID: $order_id</p>";
            } else {
                echo "<p>Error placing order: " . $conn->error . "</p>";
            }
        } else {
            echo "<p>Your cart is empty</p>";
        }
    } else {
        echo "<p>Total amount: $" . array_sum(array_column($_SESSION['cart'], 'price')) . "</p>";
        echo "<form action='checkout.php' method='post'>";
        echo "<button type='submit' name='submit'>Place Order</button>";
        echo "</form>";
    }
    ?>
</body>
</html>

订单页面 (`order.php`)

展示用户的订单历史。

如何选择和使用PHP商城源码来搭建你的在线商店?插图5

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Order History</title>
</head>
<body>
    <h1>Order History</h1>
    <?php
    include 'db.php';
    $sql = "SELECT * FROM orders";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        echo "<table border='1'>";
        echo "<tr><th>Order ID</th><th>Total</th><th>Date</th></tr>";
        while($row = $result->fetch_assoc()) {
            echo "<tr>";
            echo "<td>" . $row["id"] . "</td>";
            echo "<td>" . $row["total"] . "</td>";
            echo "<td>" . $row["date"] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>No orders found</p>";
    }
    ?>
</body>
</html>

数据库表结构示例:

确保在MySQL中创建以下表:products,orders,order_items,以下是SQL语句示例:

CREATE DATABASE shopping_mall;
USE shopping_mall;
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    price DECIMAL(10, 2) NOT NULL,
    description TEXT NOT NULL
);
INSERT INTO products (name, price, description) VALUES ('Product 1', 19.99, 'Description for product 1');
INSERT INTO products (name, price, description) VALUES ('Product 2', 29.99, 'Description for product 2');
INSERT INTO products (name, price, description) VALUES ('Product 3', 39.99, 'Description for product 3');
CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    total DECIMAL(10, 2) NOT NULL,
    date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE order_items (
    id INT AUTO_INCREMENT PRIMARY KEY,
    order_id INT NOT NULL,
    product_id INT NOT NULL,
    quantity INT NOT NULL,
    FOREIGN KEY (order_id) REFERENCES orders(id),
    FOREIGN KEY (product_id) REFERENCES products(id)
);

各位小伙伴们,我刚刚为大家分享了有关php商城源码 _PHP的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/86612.html

(0)
上一篇 2024年10月28日 22:12
下一篇 2024年10月28日 22:49

相关推荐