1. 简介
在线商城已经成为现代人购物的常用方式,如何在网上建立一个功能齐全的商城平台成为许多人关注的焦点。PHP作为一种功能强大的编程语言,可以帮助我们在建设商城时省去很多的麻烦。下面我们就来看看如何利用PHP来开发在线商城的功能。
2. 建立数据库
在建设商城之前,我们需要先建立一个数据库来存储商品信息、用户信息和订单信息等。可以使用MySQL来创建数据库,下面是一个简单的创建数据库的代码示例:
$conn = mysqli_connect($servername, $username, $password);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
echo "Database created successfully";
} else {
echo "Error creating database: " . mysqli_error($conn);
}
mysqli_close($conn);
在创建数据库之后,我们需要定义所需的表格(table),每个表格包含有多个字段(field)来存储数据。例如,我们可以创建以下三个表格:
2.1 商品信息表格
商品信息表格用于存储所有的商品信息,包括商品名称、价格、描述、库存等。下面是一个简单的创建商品信息表格的代码示例:
// Connect to database
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Create table
$sql = "CREATE TABLE Products (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
price FLOAT NOT NULL,
description TEXT,
stock INT(6) NOT NULL
)";
if (mysqli_query($conn, $sql)) {
echo "Table Products created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
2.2 用户信息表格
用户信息表格包含用户的账号密码、姓名、地址、电子邮件等信息。下面是创建用户信息表格的代码示例:
// Connect to database
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Create table
$sql = "CREATE TABLE Users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(100) NOT NULL,
name VARCHAR(50) NOT NULL,
address VARCHAR(100),
email VARCHAR(50)
)";
if (mysqli_query($conn, $sql)) {
echo "Table Users created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
2.3 订单信息表格
订单信息表格用于存储用户的订单信息,包括订单号、购物车信息、商品价格和税费等。下面是创建订单信息表格的代码示例:
// Connect to database
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Create table
$sql = "CREATE TABLE Orders (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
order_number VARCHAR(50) NOT NULL,
cart TEXT NOT NULL,
subtotal FLOAT NOT NULL,
tax FLOAT NOT NULL,
total FLOAT NOT NULL,
user_id INT(6) UNSIGNED,
FOREIGN KEY (user_id) REFERENCES Users(id)
)";
if (mysqli_query($conn, $sql)) {
echo "Table Orders created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
3. 开始开发
现在我们已经建立了数据库并定义了所需的表格,接下来可以开始开发我们的在线商城功能了。
3.1 商品页
商品页面是商城的核心功能之一,用户可以在商品页面上进行浏览、筛选和购买商品。下面是一个简单的商品页面的代码示例:
<?php
// Connect to database
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Query products
$sql = "SELECT * FROM Products";
$result = mysqli_query($conn, $sql);
// Display products
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "<div class='product'>";
echo "<h3>" . $row['name'] . "</h3>";
echo "<p>" . $row['description'] . "</p>";
echo "<p>Price: $" . $row['price'] . "</p>";
echo "<p>In Stock: " . $row['stock'] . "</p>";
echo "<button>Add to Cart</button>";
echo "</div>";
}
} else {
echo "No products found";
}
mysqli_close($conn);
?>
商品页面需要从数据库中获取商品信息并将其显示在网页上。上面的代码使用了MySQLi扩展来连接数据库并执行查询,之后使用while循环将查询结果一行一行地输出到网页上。每个商品被呈现为一个包含商品名称、商品描述、价格、库存和购物车按钮的div元素。
3.2 登录页面
为了实现用户账号和购物车等功能,我们需要在商城中添加用户系统。下面是一个简单的登录页面的代码示例:
<form method='post' action='login.php'>
<label>Username:</label>
<input type='text' name='username' required>
<label>Password:</label>
<input type='password' name='password' required>
<button type='submit'>Log In</button>
</form>
上面的代码使用了HTML表单来收集用户的登录信息。表单的动作被设置为“login.php”,我们需要在这个文件中处理登录请求。
3.3 登录处理
当用户提交登录表单时,我们需要在服务器端对其提交的信息进行验证,并在验证通过后将其登录到我们的系统中。以下是一个简单的登录处理代码示例:
<?php
session_start();
// Connect to database
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Validate username and password
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT id FROM Users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) == 1) {
$row = mysqli_fetch_assoc($result);
$_SESSION['user_id'] = $row['id'];
header('Location: index.php');
} else {
echo "Invalid username or password";
}
mysqli_close($conn);
?>
上面的代码使用了session_start()函数来启用会话,同时连接数据库并验证用户输入的用户名和密码。如果验证通过,我们将用户的ID存储在SESSION变量中,并重定向到主页(“index.php”)。否则,我们将会向用户显示错误消息。
3.4 购物车功能
购物车是在线商城中的一个非常重要的功能,用户可以将所需的商品放入购物车中然后一起结算。以下是一个简单的购物车页面:
<table>
<thead>
<tr>
<th>Product</th>
<th>Quantity</th>
<th>Price</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<?php
// Connect to database
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Query cart
$sql = "SELECT cart FROM Orders WHERE user_id = " . $_SESSION['user_id'];
$result = mysqli_query($conn, $sql);
// Calculate totals
$subtotal = 0;
$tax = 0;
$total = 0;
if (mysqli_num_rows($result) == 1) {
$row = mysqli_fetch_assoc($result);
$cart = unserialize($row['cart']);
foreach($cart as $product) {
$subtotal += $product['price'] * $product['quantity'];
echo "<tr>";
echo "<td>" . $product['name'] . "</td>";
echo "<td>" . $product['quantity'] . "</td>";
echo "<td>$" . $product['price'] . "</td>";
echo "<td>$" . $product['price'] * $product['quantity'] . "</td>";
echo "</tr>";
}
$tax = $subtotal * 0.05;
$total = $subtotal + $tax;
}
mysqli_close($conn);
?>
</tbody>
<tfoot>
<tr>
<td colspan='3'>Subtotal</td>
<td>$<?php echo $subtotal; ?></td>
</tr>
<tr>
<td colspan='3'>Tax (5%)</td>
<td>$<?php echo $tax; ?></td>
</tr>
<tr>
<td colspan='3'>Total</td>
<td>$<?php echo $total; ?></td>
</tr>
</tfoot>
</table>
上面的代码使用了一个HTML表格来显示订单中所选的商品,同时计算了商品的小计、税和总价。可以通过从订单信息表格中提取购物车信息并使用PHP的反序列化函数来获取购物车数据。
4. 结论
以上就是利用PHP开发在线商城所涉及的重要功能部分,当然还有更多的功能需要自己去实现。希望以上内容对读者有所帮助。