Hallo erstmal!
ich habe ein kleines Problem.
Ich habe folgende Tabellen Struktur:
[img=http://www.abload.de/thumb/1cnmh.jpg]
und ich möchte wissen, ob user 6 in einem bestimmten Zeitraum schon arbeitet.
wie mache ich das am besten?
angenommen der Benutzer arbeitet (wie im Bild oben) schon am 22.04.2011 von 8-19 Uhr.
Wenn er nun versucht nochmal am selben Tag INNERHALB dieses Zeitraums zu arbeiten möchte ich mit PHP eine Fehlermeldung ausgeben.
nur, wie muss mein SQL Befehl aussehen?
angenommen der benutzer versucht, am 22.04.2011 einen datensatz zwischen 10 und 14
uhr einzutragen. das würde ja in dem Bereich fallen, wo er schon arbeitet.
Also müsste mein SQL Befehl einen datensatz zurückgeben.
Versucht er aber einen Datensatz zu speichern der ausserhalb (zb. 22.04.2011 von 6-8 Uhr) würde mein SQL Befehl KEINEN Datensatz anzeigen.
so nun zu meinem problem:
angenommen der user 6 möchte am 22.04.2011 von 8-20 Uhr arbeiten:
Code:
SELECT * FROM `occupancy`
WHERE `start` >= '2011-04-22 08:00:00'
AND `end` <= '2011-04-22 20:00:00'
AND user_id = 1
- klappt - ich bekomme nun einen Datensatz zurück, und kann via PHP eine Fehlermeldung ausgeben.
Wenn der Benutzer aber nun als Startdatum wieder 08 Uhr auswählt,
aber als End Datum 16 Uhr, klappt es nicht.
Code:
SELECT * FROM `occupancy`
WHERE `start` >= '2011-04-22 08:00:00'
AND `end` <= '2011-04-22 16:00:00'
AND user_id = 1
Nun bekomme ich ein leeres Resultat.
irgendwie habe ich da ein logisches Problem.
kann mir jemand helfen, wie mein SQL Befehl aussehen muss, um nach Eingabe des users von startzeit und endzeit richtig zu überprüfen ob user 6 an diesem tag um diese Uhrzeit schon eingetragen ist?