PHP和MySQL实现酒店预订功能代码示例及详细的需求说明

涛哥 PHP代码

以下是一个基于PHP和MySQL的酒店预订功能的示例代码:

// 处理预订请求
if (isset($_POST['action']) && $_POST['action'] == 'book_hotel') {
    $hotel_id = $_POST['hotel_id'];
    $room_type = $_POST['room_type'];
    $check_in_date = $_POST['check_in_date'];
    $check_out_date = $_POST['check_out_date'];
    $guest_name = $_POST['guest_name'];
    $guest_email = $_POST['guest_email'];
    $guest_phone = $_POST['guest_phone'];
    // 查询房间是否已被预订
    $sql = "SELECT * FROM bookings WHERE hotel_id = $hotel_id AND room_type = '$room_type' AND ((check_in_date <= '$check_in_date' AND check_out_date >= '$check_in_date') OR (check_in_date <= '$check_out_date' AND check_out_date >= '$check_out_date') OR ('$check_in_date' <= check_in_date AND '$check_out_date' >= check_out_date))";
    $result = mysqli_query($conn, $sql);
    if (mysqli_num_rows($result) > 0) {
        echo 'error';
        die;
    }
    // 插入预订信息到数据库中
    $sql = "INSERT INTO bookings(hotel_id, room_type, check_in_date, check_out_date, guest_name, guest_email, guest_phone) VALUES($hotel_id, '$room_type', '$check_in_date', '$check_out_date', '$guest_name', '$guest_email', '$guest_phone')";
    $result = mysqli_query($conn, $sql);
    if ($result) {
        echo 'success';
    } else {
        echo 'error';
    }
    die;
}
// 输出酒店房间列表和处理预订操作的Ajax请求
// ...
echo '<button class="book-btn" data-hotel="'.$hotel_id.'" data-room="'.$room_type.'">预订</button>';
echo '<script>
$(function() { 
    $(".book-btn").click(function() {
        var hotel_id = $(this).data("hotel");
        var room_type = $(this).data("room");
        var check_in_date = $("#check-in-date").val();
        var check_out_date = $("#check-out-date").val();
        var guest_name = $("#guest-name").val();
        var guest_email = $("#guest-email").val();
        var guest_phone = $("#guest-phone").val();
        $.ajax({
            type: "POST",
            url: "book.php",
            data: {
                action: "book_hotel",
                hotel_id: hotel_id,
                room_type: room_type,
                check_in_date: check_in_date,
                check_out_date: check_out_date,
                guest_name: guest_name,
                guest_email: guest_email,
                guest_phone: guest_phone
            },
            success: function(response) {
                if (response === "success") {
                    alert("预订成功!");
                } else if (response === "error") {
                    alert("该房间已被预订,请选择其他房间或日期。");
                } else {
                    alert("预订失败,请稍后再试。");
                }
            },
            error: function() {
                alert("请求失败,请稍后再试。");
            }
        });
    });
});
</script>';

以上代码实现了一个基于PHP和MySQL的酒店预订功能,主要包括以下几个方面:

处理预订请求:当用户点击预订按钮时,通过Ajax向book.php文件发送一个POST请求,携带了预订操作的相关参数,如酒店ID、房间类型、入住日期、离店日期、客人姓名、客人邮箱等信息。在book.php文件中,我们首先查询该房间在预订的日期内是否已被预订,如果已被预订,则返回"error"字符串,否则将预订信息插入到数据库中,并返回"success"字符串。

输出酒店房间列表和处理预订操作的Ajax请求:在页面上输出酒店房间列表,并包含预订按钮的HTML代码和处理预订操作的Ajax请求代码,以便用户进行预订操作。

实现预订操作:当用户点击预订按钮时,会触发Ajax请求,从而将预订信息插入到数据库中,同时提示用户预订操作的结果。 此功能的目的是为了让用户可以方便地预订酒店房间,以便在旅行或出差时获得舒适的住宿环境。

在实现酒店预订功能时,需要考虑到数据安全和用户体验的问题,例如如何防止SQL注入和XSS攻击、如何对预订信息进行管理和展示等。同时,还可以对预订功能进行扩展和优化,例如实现酒店评价、酒店推荐等功能。