PHP后台+微信小程序运动场地预约系统毕业设计

一、引言

随着人们生活水平的提高,体育锻炼逐渐成为大众日常生活的重要组成部分。特别是在城市中,运动场地的预约需求日益增加。为了提高运动场地的使用效率和用户的预约体验,我们设计并实现了一个基于PHP后台与微信小程序的运动场地预约系统。本系统包括用户注册登录、场地信息浏览、场地预约、订单管理等功能。

二、系统架构

系统采用前后端分离的设计。前端使用微信小程序进行开发,后端则使用PHP进行开发。数据存储选择MySQL数据库,以便高效管理用户信息和预约记录。

1. 数据库设计

数据库主要包括以下几张表:

  • 用户表(users)
  • 场地表(grounds)
  • 预约表(reservations)

用户表:

CREATE TABLE `users` (
    `id` INT(11) AUTO_INCREMENT PRIMARY KEY,
    `openid` VARCHAR(255) NOT NULL,
    `name` VARCHAR(100) NOT NULL,
    `phone` VARCHAR(20) NOT NULL,
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

场地表:

CREATE TABLE `grounds` (
    `id` INT(11) AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(100) NOT NULL,
    `location` VARCHAR(255) NOT NULL,
    `price` DECIMAL(10, 2) NOT NULL,
    `available` TINYINT(1) DEFAULT 1,
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

预约表:

CREATE TABLE `reservations` (
    `id` INT(11) AUTO_INCREMENT PRIMARY KEY,
    `user_id` INT(11) NOT NULL,
    `ground_id` INT(11) NOT NULL,
    `reservation_time` DATETIME NOT NULL,
    FOREIGN KEY (`user_id`) REFERENCES `users`(`id`),
    FOREIGN KEY (`ground_id`) REFERENCES `grounds`(`id`)
);

三、功能实现

1. 用户注册与登录

用户通过微信授权登录,系统将获取用户的openid,并存储在用户表中。

PHP代码示例:

if(isset($_POST['code'])) {
    // 获取用户的openid
    $code = $_POST['code'];
    $url = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=$code&grant_type=authorization_code";
    $response = file_get_contents($url);
    $data = json_decode($response, true);
    $openid = $data['openid'];

    // 检查用户是否已存在
    $stmt = $pdo->prepare("SELECT * FROM users WHERE openid = :openid");
    $stmt->execute(['openid' => $openid]);
    $user = $stmt->fetch();

    if (!$user) {
        // 如果用户不存在,注册新用户
        $stmt = $pdo->prepare("INSERT INTO users (openid, name, phone) VALUES (:openid, '', '')");
        $stmt->execute(['openid' => $openid]);
    }
}

2. 场地浏览与预约

用户可以浏览可预约的场地信息,并选择想要预约的场地和时间。

场地信息API示例:

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $stmt = $pdo->query("SELECT * FROM grounds WHERE available = 1");
    $grounds = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($grounds);
}

3. 预约记录管理

用户可以查看自己的预约记录,并取消未使用的预约。

查看预约记录示例:

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $userId = $_GET['user_id'];
    $stmt = $pdo->prepare("SELECT * FROM reservations WHERE user_id = :user_id");
    $stmt->execute(['user_id' => $userId]);
    $reservations = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo json_encode($reservations);
}

四、总结

本系统通过PHP后台与微信小程序的结合,实现了运动场地的预约管理功能,简化了用户的预约流程,提高了场地的使用效率。未来,我们可以考虑增加用户评价、场地推荐等功能,以提升用户体验和系统的智能化水平。希望本设计能够为相关领域的开发提供一些参考和帮助。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部