当前位置:首页 > PHP

php怎么实现停车

2026-02-16 14:48:13PHP

PHP实现停车场管理系统

停车管理系统的核心功能包括车辆进出记录、停车计费、车位管理等。以下是一个基于PHP和MySQL的简单实现方案:

数据库设计

创建名为parking_system的数据库,包含以下表结构:

CREATE TABLE `parking_lots` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `total_spaces` int(11) NOT NULL,
  `available_spaces` int(11) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `vehicles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `plate_number` varchar(20) NOT NULL,
  `vehicle_type` enum('car','motorcycle') NOT NULL,
  `entry_time` datetime NOT NULL,
  `exit_time` datetime DEFAULT NULL,
  `parking_lot_id` int(11) NOT NULL,
  `fee` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `plate_number` (`plate_number`,`exit_time`)
);

车辆进入处理

创建entry.php处理车辆进入:

<?php
$conn = new mysqli('localhost', 'username', 'password', 'parking_system');

$plateNumber = $_POST['plate_number'];
$vehicleType = $_POST['vehicle_type'];
$parkingLotId = $_POST['parking_lot_id'];

// 检查车位可用性
$lotQuery = "SELECT available_spaces FROM parking_lots WHERE id = $parkingLotId";
$lotResult = $conn->query($lotQuery);
$lotData = $lotResult->fetch_assoc();

if ($lotData['available_spaces'] > 0) {
    $insertQuery = "INSERT INTO vehicles (plate_number, vehicle_type, entry_time, parking_lot_id) 
                   VALUES ('$plateNumber', '$vehicleType', NOW(), $parkingLotId)";

    if ($conn->query($insertQuery)) {
        $updateQuery = "UPDATE parking_lots SET available_spaces = available_spaces - 1 WHERE id = $parkingLotId";
        $conn->query($updateQuery);
        echo "车辆进入成功记录";
    } else {
        echo "记录失败: " . $conn->error;
    }
} else {
    echo "车位已满";
}

$conn->close();
?>

车辆离开处理

创建exit.php处理车辆离开和计费:

<?php
$conn = new mysqli('localhost', 'username', 'password', 'parking_system');

$plateNumber = $_POST['plate_number'];
$parkingLotId = $_POST['parking_lot_id'];

// 获取进入时间
$query = "SELECT id, entry_time FROM vehicles 
          WHERE plate_number = '$plateNumber' AND exit_time IS NULL LIMIT 1";
$result = $conn->query($query);

if ($result->num_rows > 0) {
    $vehicle = $result->fetch_assoc();
    $entryTime = new DateTime($vehicle['entry_time']);
    $exitTime = new DateTime();
    $duration = $exitTime->diff($entryTime);
    $hours = $duration->h + ($duration->days * 24);

    // 简单计费规则:每小时5元
    $fee = $hours * 5;

    $updateQuery = "UPDATE vehicles SET exit_time = NOW(), fee = $fee 
                   WHERE id = {$vehicle['id']}";

    if ($conn->query($updateQuery)) {
        $updateLotQuery = "UPDATE parking_lots SET available_spaces = available_spaces + 1 
                          WHERE id = $parkingLotId";
        $conn->query($updateLotQuery);
        echo "停车费: $fee 元, 停车时间: $hours 小时";
    } else {
        echo "更新失败: " . $conn->error;
    }
} else {
    echo "未找到该车辆记录";
}

$conn->close();
?>

车位管理界面

创建dashboard.php显示车位状态:

<?php
$conn = new mysqli('localhost', 'username', 'password', 'parking_system');

$query = "SELECT * FROM parking_lots";
$result = $conn->query($query);

while ($row = $result->fetch_assoc()) {
    echo "<div class='parking-lot'>";
    echo "<h3>{$row['name']}</h3>";
    echo "<p>总车位: {$row['total_spaces']}</p>";
    echo "<p>可用车位: {$row['available_spaces']}</p>";
    echo "</div>";
}

$conn->close();
?>

安全增强措施

在实际部署时应考虑以下安全措施:

  • 使用预处理语句防止SQL注入
  • 对用户输入进行验证和过滤
  • 实现用户认证和授权
  • 添加HTTPS加密传输
  • 定期备份数据库

这个基础实现可以扩展添加更多功能如:

php怎么实现停车

  • 会员系统与折扣
  • 预约停车位
  • 多层级计费规则
  • 数据分析报表
  • 移动端适配界面

系统可根据实际需求调整数据库结构和业务逻辑。对于大型停车场,可能需要考虑分布式架构和性能优化。

标签: php
分享给朋友:

相关文章

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php 队列的实现

php 队列的实现

PHP 队列的实现方法 使用数据库实现队列 创建一个数据表存储队列任务,包含任务ID、状态、创建时间等字段。通过SQL语句实现任务的入队和出队操作。 // 入队操作 INSERT INTO queu…

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…

php 实现锁

php 实现锁

PHP 实现锁的常见方法 文件锁(flock) 利用 flock 函数对文件进行独占锁定,适用于单机环境。 $fp = fopen("lockfile.lock", "w+"); if (f…

php实现抽奖程序

php实现抽奖程序

PHP实现抽奖程序 基本抽奖逻辑 创建一个简单的抽奖程序需要定义奖品、中奖概率及随机选择逻辑。以下是一个基础实现示例: <?php // 奖品配置(奖品名称 => 概率) $prizes…