我正在创建一个会议室预订系统,用户可以在其中预订房间。如果数据库中已经存在时间或时间段之间,则用户无法预订房间。并且每次预订在上次结束时间和下一次开始时间之间有30分钟的时间间隔。这意味着,如果已经在10.00到11.00的时间段内预订。下一次预订只能将开始时间设置为11.30。每次会议之间有30分钟的清洁时间间隔。我的代码是
$qry="select endtime from bookroom where room='$room' and endtime > (SUBTIME('$datetime', '00:30:00'))";
$ex=mysqli_query($con,$qry);
if(mysqli_num_rows($ex)>0)
{
echo "<script>alert('This Room is already Booked for this time!!');
window.history.go(-1);
</script>";
}
else{
//query for insert
}
此处$ room是会议室名称,而$ datetime是用户输入的开始时间。使用此方法,我可以在开始时间上获得30分钟的时间间隔,但如果已经在10-11中,则无法预订9-10。而且也无法在两个时间之间签入
有人可以帮我吗
更新
我找到了解决问题的方法。
$qry="select starttime,endtime from bookroom where room='Auditorium' and (('$datetimestart' BETWEEN starttime and endtime) OR ('$datetimeend' BETWEEN starttime and endtime)) OR ((starttime BETWEEN '$datetimestart' and '$datetimeend') OR (endtime BETWEEN '$datetimestart' AND '$datetimeend'))";
我得到了预期的输出。任何人都可以检查我的代码中是否存在任何问题或粗俗之处。无论如何,我得到了预期的输出