以下是一个基于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攻击、如何对预订信息进行管理和展示等。同时,还可以对预订功能进行扩展和优化,例如实现酒店评价、酒店推荐等功能。
评论