Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > เช็คการจองห้องพัก เรียกดูห้องว่างให้แสดงยังไงดีครับ รบกวนพี่ๆหน่อยครับ



 

เช็คการจองห้องพัก เรียกดูห้องว่างให้แสดงยังไงดีครับ รบกวนพี่ๆหน่อยครับ

 



Topic : 116961



โพสกระทู้ ( 288 )
บทความ ( 0 )



สถานะออฟไลน์




ด

จากภาพ
Room 30 = ห้องเบอร์ 30
Room 34 = ห้องเบอร์ 34
สีเหลือง = ห้องว่างครับ
สีขาว = ห้องเต็ม

จากตางรางที่ 2 ทำการจองตั้งแต่วันที่
checkin = 2015-06-09 14:00:00 checkout = 2015-06-11 12:00:00

จะเห็นว่า วันที่ 10 Room 34 ไม่มีห้องว่าง

ผมต้องการให้มันแสดงห้องที่ว่าง ห้องไหนไม่ว่างก็ไม่ต้องโชว์

ผมเขียนโค้ดไว้แบบนี้ครับ
Code (PHP)
$BookingSQL = "select * from booking where ";
$BookingSQL .= "((booking_strdate between '".$booking_strdate."' and '".$booking_enddate."') or ";
$BookingSQL .= "(booking_enddate between '".$booking_strdate."' and '".$booking_enddate."')) and booking_status not in('1','0')";
$BookingQuery = $this->db->query($BookingSQL);
$BookingNums = $BookingQuery->num_rows();

if($BookingNums==0) { // ถ้าไม่มีรายการจองห้องพักเลย ให้สร้าง session ทั้ง 2 ห้องพัก เพื่อเปิดให้เลือกทั้ง 2

    $this->session->set_userdata('choose_accomodation_34','34'); 
    $this->session->set_userdata('choose_accomodation_27','30'); 
} else if($BookingNums>=2) { // ถ้ามีรายการจองมากกว่า = 2 ให้แสดงว่าจองเต็มแล้ว
      if($this->session->userdata('lang')=='en') {
          echo "<script>alert('I’m so sorry, sir. There is full occupancy date.');</script>";
      } else {
         echo "<script>alert('ขออภัยขณะนี้เราไม่มีห้องพักในวันที่คุณเลือก กรุณาลองเปลี่ยนวันที่อีกครั้ง');</script>";
      }
      echo "<script>history.go(-1);</script>";
      exit;
} else {
     foreach($BookingQuery->result() as  $booking) { 
if($booking->booking_accomodation==30) {  $this->session->set_userdata('choose_accomodation_34','34'); }
if($booking->booking_accomodation==34) {  $this->session->set_userdata('choose_accomodation_27','30'); }
      }   
 }


ผมใช้วิธีการกำหนดวันที่ห้องว่างให้จอง ไม่ได้เปิดจองทุกวันอะครับ ที่ผมกำหนดไว้ตามภาพคือ วันที่ 7 - 11 มีห้องว่าง

ลำดับขั้นตอนในสคิปด้านบน
checkin = 2015-06-09 14:00:00 checkout = 2015-06-11 12:00:00

if(BookingNums=0) { ถ้าไม่มีคนจอง ให้โชว์ห้องพักทั้ง 2 ขนาด } //มันเกิดบัคว่า วันที่ 9 ถ้าไม่มีคนจองโชว์ 2 ห้องเลย ตรงส่วนนี้เราจะเขียนยังไงดีครับ
else if(BookingNums>=2) {ถ้ามีคนจองเกิน 2 หรือ เท่ากับ 2 คือห้องเต็มครับ } //ผ่านแล้วครับ
else { ถ้ามีคนจองห้อง หาว่าจองห้องไหน เช่นถ้าจองห้อง 30 ก็ให้โชว์ ห้อง 34 } //ผ่านแล้วครับ

ถ้ามีไอเดียใหม่ในการเช็คก็ได้ครับ ไม่จำเป็นต้องคงสคิปด้านบน
รบกวนหน่อยครับ

ขอบคุณครับ



Tag : PHP, HTML/CSS, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-06-05 17:21:49 By : ilikeit View : 3122 Reply : 1
 

 

No. 1



โพสกระทู้ ( 4 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

อันดับแรก ขอถามก่อนนะครับ ว่า คุณใช้ framework php รึป่าว

อย่างเช่น CI ระบบเค้า เป็น MVC น่าจะใช้งานให้ ถูกต้อง ตามระบบ ตัว framework ที่มีความสามารถของมัน นะครับ

Query ของคุณ

Code
$BookingSQL = "select * from booking where ";
$BookingSQL .= "((booking_strdate between '".$booking_strdate."' and '".$booking_enddate."') or ";


ควรจะใช้เป็น หาห้องที่จอง

Code
$BookingSQL = "select * from booking where ";
$BookingSQL .= "((now() between booking_strdate and booking_enddate) or ";


ส่วนหา ห้องที่ว่าง

Code
$BookingSQL = "select * from booking where ";
$BookingSQL .= "((now() not between booking_strdate and booking_enddate) or ";







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-06-08 18:08:52 By : chaipat
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เช็คการจองห้องพัก เรียกดูห้องว่างให้แสดงยังไงดีครับ รบกวนพี่ๆหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่