用php写一个停车场管理系统根据停放时间计价
时间: 2023-11-14 21:04:23 浏览: 40
好的,我可以为您提供一个简单的停车场管理系统,用PHP编写,实现根据停放时间计价的功能。
首先,我们需要一个数据库来存储停车场的信息。我们可以创建一个名为“parking”的数据库,其中包含两个表:一个名为“parking_lot”的表,用于存储停车场的信息,另一个名为“parking_record”的表,用于存储停车记录。
```sql
CREATE DATABASE parking;
USE parking;
CREATE TABLE parking_lot (
id INT(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
capacity INT(11) NOT NULL
);
CREATE TABLE parking_record (
id INT(11) PRIMARY KEY AUTO_INCREMENT,
license_plate VARCHAR(20) NOT NULL,
enter_time DATETIME NOT NULL,
exit_time DATETIME,
parking_lot_id INT(11) NOT NULL,
price DECIMAL(10,2)
);
```
接下来,我们需要创建一个PHP文件,用于处理停车场的逻辑。首先,我们需要连接到数据库。
```php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "parking";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
```
然后,我们可以创建一个函数来添加停车场信息。
```php
function addParkingLot($name, $capacity) {
global $conn;
$sql = "INSERT INTO parking_lot (name, capacity) VALUES ('$name', $capacity)";
if ($conn->query($sql) === TRUE) {
echo "Parking lot added successfully.";
} else {
echo "Error adding parking lot: " . $conn->error;
}
}
```
接下来,我们需要创建一个函数来记录车辆进入停车场。
```php
function enterParkingLot($license_plate, $parking_lot_id) {
global $conn;
$sql = "INSERT INTO parking_record (license_plate, enter_time, parking_lot_id) VALUES ('$license_plate', NOW(), $parking_lot_id)";
if ($conn->query($sql) === TRUE) {
echo "Vehicle entered parking lot successfully.";
} else {
echo "Error entering parking lot: " . $conn->error;
}
}
```
然后,我们需要创建一个函数来记录车辆离开停车场,并计算停车费用。
```php
function exitParkingLot($license_plate) {
global $conn;
$sql = "SELECT * FROM parking_record WHERE license_plate = '$license_plate' AND exit_time IS NULL";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$enter_time = strtotime($row["enter_time"]);
$exit_time = time();
$parking_duration = ($exit_time - $enter_time) / 60; // in minutes
// calculate price based on parking duration
$price = 0.0;
if ($parking_duration <= 60) {
$price = 5.0;
} else if ($parking_duration <= 120) {
$price = 8.0;
} else if ($parking_duration <= 180) {
$price = 11.0;
} else {
$price = 11.0 + ceil(($parking_duration - 180) / 60) * 3.0;
}
// update parking record with exit time and price
$sql = "UPDATE parking_record SET exit_time = NOW(), price = $price WHERE id = " . $row["id"];
if ($conn->query($sql) === TRUE) {
echo "Vehicle exited parking lot successfully. Price: $price";
} else {
echo "Error exiting parking lot: " . $conn->error;
}
} else {
echo "Vehicle not found in parking lot or already exited.";
}
}
```
最后,我们可以测试一下这些函数是否正常工作。
```php
addParkingLot("Lot A", 50);
enterParkingLot("ABC123", 1);
exitParkingLot("ABC123");
```
当我们运行这个PHP文件时,它应该会输出以下结果:
```
Parking lot added successfully.
Vehicle entered parking lot successfully.
Vehicle exited parking lot successfully. Price: 5
```
这就是一个简单的用PHP编写的停车场管理系统,它可以根据停放时间计算停车费用。当然,这只是一个简单的示例,实际使用时还需要考虑更多的功能和安全性。