用php写一个Online Fruit Store,可以展示数据库里的水果和每公斤价格,买家可以选择水果种类和数量。如果买家选择的数量超过数据库中的数量,则给一个warning message并取消购买;如果
时间: 2024-05-11 21:18:03 浏览: 3
买家购买成功,则将购买的记录保存到数据库中。
首先需要创建一个数据库,包含两个表格:一个是水果列表表格,另一个是购买记录表格。
水果列表表格的结构如下:
```sql
CREATE TABLE fruits (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
price FLOAT(6,2) NOT NULL,
quantity INT(6) NOT NULL
);
```
购买记录表格的结构如下:
```sql
CREATE TABLE orders (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
fruit_id INT(6) NOT NULL,
quantity INT(6) NOT NULL,
total_price FLOAT(6,2) NOT NULL,
order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
接下来需要编写PHP代码来实现在线水果商店的功能。我们可以创建一个index.php文件,包含以下代码:
```php
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 处理购买请求
if (isset($_POST['buy'])) {
$fruit_id = $_POST['fruit_id'];
$quantity = $_POST['quantity'];
$sql = "SELECT * FROM fruits WHERE id='$fruit_id'";
$result = $conn->query($sql);
if ($result->num_rows == 1) {
$row = $result->fetch_assoc();
$price = $row['price'];
$available_quantity = $row['quantity'];
if ($quantity > $available_quantity) {
echo "警告:库存不足!";
} else {
$total_price = $quantity * $price;
$sql = "INSERT INTO orders (fruit_id, quantity, total_price) VALUES ('$fruit_id', '$quantity', '$total_price')";
if ($conn->query($sql) === TRUE) {
echo "购买成功!";
} else {
echo "购买失败: " . $conn->error;
}
}
} else {
echo "水果不存在!";
}
}
// 显示水果列表
$sql = "SELECT * FROM fruits";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$id = $row['id'];
$name = $row['name'];
$price = $row['price'];
$quantity = $row['quantity'];
echo "<form method='post'>";
echo "<h3>$name</h3>";
echo "<p>价格:$price 元/公斤</p>";
echo "<p>剩余库存:$quantity 公斤</p>";
echo "<input type='hidden' name='fruit_id' value='$id'>";
echo "<input type='number' name='quantity' min='1' max='$quantity'>";
echo "<input type='submit' name='buy' value='购买'>";
echo "</form>";
}
} else {
echo "暂无水果可供购买!";
}
$conn->close();
?>
```
以上代码会展示水果列表,并且包含一个表单来让用户选择水果种类和数量。当用户点击“购买”按钮时,会检查库存是否足够,如果足够则会将购买记录保存到数据库中,否则会给出一个警告信息。
需要注意的是,上面的代码存在SQL注入漏洞,需要使用预处理语句来避免这个问题。此外,还需要对用户输入进行验证和过滤,确保输入的数据安全可靠。