ユーザーが要求した時間内にセッションがすでにスケジュールされているかどうかを確認するスクリプトがあります。その時間枠に別のセッションがある場合、ユーザーがセッションをスケジュールできないようにする必要があります。これが私がやったことです:
//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 分以内に次のセッションがないことを確認し、2 番目の "if" ステートメントは、入力された時間がスケジュールされたセッションの範囲内に収まらないことを確認します。
ただし、午後 11 時から午後 12 時までにスケジュールされたセッションがあるとします。このコードは、たとえば 11:15 から 11:30 と入力すると正常に機能しますが、11:30 から 12:15 または 10:45 から 12:15 のように入力すると、テストに合格します。
ユーザーが入力した時間範囲と、すでにスケジュールされているセッションとの間に重複がないことを確認するコードが必要です。