สอบถามโค้ด sql ในการกำหนดช่วงเวลาการจอง

กระทู้คำถาม

 $sql = "SELECT * FROM booking_live WHERE booking_date = '".$booking_date."' 
    AND ((booking_classstart BETWEEN '".$booking_classstart."' AND '".$booking_classend."') 
    OR (booking_classend BETWEEN '".$booking_classstart."' AND '".$booking_classend."')
    OR ('".$booking_classstart."' BETWEEN booking_classstart AND booking_classend)
    OR ('".$booking_classend."' BETWEEN booking_classstart AND booking_classend))
    AND booking_status in('Y','N')";
   
    $result1 = mysqli_query($connect, $sql) or die(mysqli_error($connect) . "<br>$sql"); 
    $num=mysqli_num_rows($result1);
 
    if($num > 0) 
    {
        echo "<center>
        <div style='margin-top:50px;background-color:#F60000 ;height:120px;width:100%;'><br><br>
        <font color='#FFFFFF' size='5'><b>วันและคาบเรียนที่จองเครื่องคอมพิวเตอร์ของคุณ ถูกจองไปแล้ว! </b></font></center><br>
        </div>
        ";
        print '<meta http-equiv="refresh" content="3;url=home.php">';
        exit();
    }  
  else{
    $sql="INSERT INTO booking_live VALUES ('','$machine_id','$idmember','$booking_date','$booking_classstart','$booking_classend','$booking_name','$booking_detail','$booking_program','N')";
   mysqli_query($connect, $sql);
   echo "<center>
   <div style='margin-top:50px;background-color:#CFECCA;height:120px;width:100%;'><br><br>
   <font color='#1C9C07' size='5'><b>จองเครื่องคอมพิวเตอร์ Live Stream เรียบร้อยแล้ว รอการอนุมัติ ! </b></font></center><br>
   </div>
   ";

จากโค้ดและฐานข้อมูล booking_classstart คือคาบเริ่มต้น เช่น คาบ 0-10
                                  booking_classend คือคาบสิ้นสุด เช่น คาบ 0-10
                                  booking_date คือวันที่ใช้งาน
เมื่อใช้คำสั่ง SQL ในการเลือกช่วงเวลา บางครั้งก็สามารถจองนอกเวลาต่อได้ เดี๋ยวก็จองได้ เดี๋ยวก็จองไม่ได้ และจองคร่อมได้
จึงไม่รู้ว่าเกิดจากอะไรค่ะ  คืออยากให้โปรแกรมไม่สามารถจองคร่อมคาบได้เช่น  วันที่ 26 ก.ค. 2563 มีคนจอง คาบ 1-4 และมีอีกคนจอง 3-4 ก็ไม่สามารถจองได้
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่