网上商城web课程设计和代码
时间: 2023-07-10 21:38:25 浏览: 60
设计一个网上商城需要考虑以下几个方面:
1. 用户登录和注册:提供用户注册和登录的功能,以便用户可以进行购物。
2. 商品浏览:用户可以在网站上浏览商品,查看商品详情和价格等信息。
3. 购物车:用户可以将想要购买的商品添加到购物车中,方便批量购买。
4. 订单管理:用户可以查看自己的订单状态和历史订单记录。
5. 支付系统:提供在线支付功能,支持多种支付方式。
6. 后台管理:管理员可以对商品、订单、用户等信息进行管理和修改。
7. 数据库设计:需要设计商品、用户、订单等相关的数据库表结构。
以下是一个简单的网上商城的代码示例:
1. 用户注册和登录:
```php
<?php
// 注册
if($_POST['action'] == 'register') {
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
// 验证用户名是否存在
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0) {
echo "用户名已存在";
} else {
// 插入数据到数据库
$sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')";
mysqli_query($conn, $sql);
echo "注册成功";
}
}
// 登录
if($_POST['action'] == 'login') {
$username = $_POST['username'];
$password = $_POST['password'];
// 验证用户名和密码是否匹配
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) > 0) {
echo "登录成功";
} else {
echo "用户名或密码错误";
}
}
?>
```
2. 商品浏览:
```php
<?php
// 查询商品列表
$sql = "SELECT * FROM products";
$result = mysqli_query($conn, $sql);
// 循环输出每个商品信息
while($row = mysqli_fetch_assoc($result)) {
echo "<div class='product'>";
echo "<img src='".$row['image']."' />";
echo "<h2>".$row['name']."</h2>";
echo "<p>".$row['description']."</p>";
echo "<span>".$row['price']."</span>";
echo "</div>";
}
?>
```
3. 购物车:
```php
<?php
// 添加商品到购物车
if($_POST['action'] == 'add') {
$product_id = $_POST['product_id'];
$quantity = $_POST['quantity'];
// 查找商品信息
$sql = "SELECT * FROM products WHERE id = '$product_id'";
$result = mysqli_query($conn, $sql);
$product = mysqli_fetch_assoc($result);
// 将商品添加到购物车
$_SESSION['cart'][$product_id] = array(
'name' => $product['name'],
'price' => $product['price'],
'quantity' => $quantity
);
}
// 显示购物车内容
if(!empty($_SESSION['cart'])) {
echo "<table>";
echo "<tr><th>商品名称</th><th>单价</th><th>数量</th><th>总价</th></tr>";
$total_price = 0;
foreach($_SESSION['cart'] as $product) {
$subtotal = $product['price'] * $product['quantity'];
$total_price += $subtotal;
echo "<tr>";
echo "<td>".$product['name']."</td>";
echo "<td>".$product['price']."</td>";
echo "<td>".$product['quantity']."</td>";
echo "<td>".$subtotal."</td>";
echo "</tr>";
}
echo "<tr><td colspan='3'>总计:</td><td>".$total_price."</td></tr>";
echo "</table>";
} else {
echo "购物车为空";
}
?>
```
4. 订单管理:
```php
<?php
// 查询用户的订单列表
$user_id = $_SESSION['user_id'];
$sql = "SELECT * FROM orders WHERE user_id = '$user_id'";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
echo "<div class='order'>";
echo "<h2>订单号:".$row['order_number']."</h2>";
echo "<p>下单时间:".$row['order_time']."</p>";
echo "<p>状态:".$row['status']."</p>";
echo "<ul>";
// 查询订单中的商品列表
$order_id = $row['id'];
$sql2 = "SELECT * FROM order_items WHERE order_id = '$order_id'";
$result2 = mysqli_query($conn, $sql2);
while($row2 = mysqli_fetch_assoc($result2)) {
echo "<li>".$row2['product_name']." x ".$row2['quantity']."</li>";
}
echo "</ul>";
echo "</div>";
}
?>
```
5. 支付系统:
```php
<?php
// 支付页面
if($_POST['action'] == 'pay') {
$total_price = $_POST['total_price'];
$payment_method = $_POST['payment_method'];
// 生成订单号
$order_number = date('YmdHis').rand(1000,9999);
// 插入订单数据到数据库
$user_id = $_SESSION['user_id'];
$sql = "INSERT INTO orders (user_id, order_number, order_time, total_price, payment_method, status) VALUES ('$user_id', '$order_number', NOW(), '$total_price', '$payment_method', '待支付')";
mysqli_query($conn, $sql);
$order_id = mysqli_insert_id($conn);
// 插入订单商品数据到数据库
foreach($_SESSION['cart'] as $product_id => $product) {
$product_name = $product['name'];
$quantity = $product['quantity'];
$price = $product['price'];
$sql2 = "INSERT INTO order_items (order_id, product_id, product_name, quantity, price) VALUES ('$order_id', '$product_id', '$product_name', '$quantity', '$price')";
mysqli_query($conn, $sql2);
}
// 清空购物车
unset($_SESSION['cart']);
echo "支付成功";
}
?>
```
6. 后台管理:
```php
<?php
// 商品管理页面
if($_GET['page'] == 'products') {
// 查询商品列表
$sql = "SELECT * FROM products";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
echo "<div class='product'>";
echo "<img src='".$row['image']."' />";
echo "<h2>".$row['name']."</h2>";
echo "<p>".$row['description']."</p>";
echo "<span>".$row['price']."</span>";
echo "<a href='edit_product.php?id=".$row['id']."'>编辑</a>";
echo "<a href='delete_product.php?id=".$row['id']."'>删除</a>";
echo "</div>";
}
}
// 编辑商品页面
if($_GET['page'] == 'edit_product') {
$id = $_GET['id'];
// 查询商品信息
$sql = "SELECT * FROM products WHERE id = '$id'";
$result = mysqli_query($conn, $sql);
$product = mysqli_fetch_assoc($result);
// 显示商品表单
echo "<form method='post'>";
echo "<label>商品名称:</label><input type='text' name='name' value='".$product['name']."' /><br />";
echo "<label>商品描述:</label><textarea name='description'>".$product['description']."</textarea><br />";
echo "<label>商品价格:</label><input type='text' name='price' value='".$product['price']."' /><br />";
echo "<input type='submit' name='action' value='保存' />";
echo "</form>";
// 保存商品信息
if($_POST['action'] == '保存') {
$name = $_POST['name'];
$description = $_POST['description'];
$price = $_POST['price'];
$sql = "UPDATE products SET name = '$name', description = '$description', price = '$price' WHERE id = '$id'";
mysqli_query($conn, $sql);
echo "保存成功";
}
}
// 删除商品页面
if($_GET['page'] == 'delete_product') {
$id = $_GET['id'];
// 删除商品
$sql = "DELETE FROM products WHERE id = '$id'";
mysqli_query($conn, $sql);
echo "删除成功";
}
?>
```
7. 数据库设计:
```sql
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE products (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
image VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE orders (
id INT(11) NOT NULL AUTO_INCREMENT,
user_id INT(11) NOT NULL,
order_number VARCHAR(255) NOT NULL,
order_time DATETIME NOT NULL,
total_price DECIMAL(10,2) NOT NULL,
payment_method VARCHAR(255) NOT NULL,
status VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE order_items (
id INT(11) NOT NULL AUTO_INCREMENT,
order_id INT(11) NOT NULL,
product_id INT(11) NOT NULL,
product_name VARCHAR(255) NOT NULL,
quantity INT(11) NOT NULL,
price DECIMAL(10,2) NOT NULL,
PRIMARY KEY (id)
);
```