Speichere die Zeiten für die Belegung als timestamps. Dann kannst du, ob aus Datenbank oder Array, überprüfen ob der gewünschte Zeitraum in irgendeiner Weise mit dem schon Angemeldeten in Konflikte gerät.
Im Moment fällt mir keine Lösung mit einem if-statement ein - Es gibt aber 4 mögliche Konflikte:
* Der neue Zeitraum liegt innerhalb des Bestehenden Zeitraums
* Der neue Zeitraum begint vor und endet nach dem Bestehenden Zeitraum
* Der neue Zeitraum begint vor und endet innerhalb des Bestehenden Zeitraums
* Der neue Zeitraum begint innerhalb und endet nach dem Bestehenden Zeitraum
Für alle Fälle ein if-statement und im Falle eines Konflikts eine Fehler-Variable belegen...
Wenn du direkt mit mysql Arbeitest wird es auch ein wenig einfacher gehen, aber das Prinzip bleibt ähnlich...
Evtl. gibt es auch eine einfachere Lösung - mir fällt gerade nur keine ein