当前位置:首页 > 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实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数: $q…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php实现文章

php实现文章

PHP实现文章管理功能 在PHP中实现文章管理功能通常涉及数据库操作、表单处理和页面展示。以下是实现文章管理的基本步骤: 数据库设计 创建articles表,包含字段如id、title、conten…