我有一个脚本可以检查在用户请求的时间内是否已经安排了会话。如果在该时间范围内有另一个会话,我需要确保用户无法安排会话。这是我所做的:
//Check to make sure no sessions have been already scheduled for this time
$session_check_query = "SELECT * FROM requested_sessions WHERE username_t = '{$tutor_usernname}'";
$session_check_process = mysql_query($session_check_query);
while ($session_check = mysql_fetch_array($session_check_process)) {
if ($session_check['time_from'] - $session_to_time <= 900 && $session_check['time_from'] > $session_to_time && $session_check['accepted'] == 1) {
header("Location:../../../iframes/schedule-session.php?".$url_string."&error=notavail");
exit;
}
if ($session_check['time_from'] <= $session_from_time && $session_check['time_to'] >= $session_to_time && $session_check['accepted'] == 1) {
header("Location:../../../iframes/schedule-session.php?".$url_string."&error=notavail");
exit;
}
}
第一个“if”语句确保在接下来的 15 分钟内没有即将到来的会话,第二个“if”语句确保输入的时间不在预定会话的范围内。
但是,假设有一个会话安排在晚上 11:00 到 12:00。如果我输入 11:15 到 11:30,此代码将正常工作,但如果我输入 11:30 到 12:15 或 10:45 到 12:15 之类的内容,它将通过测试。
我需要代码来确保用户输入的时间范围与已安排的会话之间没有重叠。