
$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 ก็ไม่สามารถจองได้
สอบถามโค้ด 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 ก็ไม่สามารถจองได้