PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   Abfrage - Stundenweise - Belegung - Reservierung (https://www.php-resource.de/forum/sql-datenbanken/103733-abfrage-stundenweise-belegung-reservierung.html)

bofan 22-01-2013 14:04

Abfrage - Stundenweise - Belegung - Reservierung
 
Hallo!

Ich steh mal wieder auf dem Schlauch!

Ich habe eine Seite erstellt, auf der jemand einen Raum buchen kann.

Wenn ein Raum an einem Tag gebucht ist, ist er "belegt".

Nun möchten meine Kollegen diesen Raum mehrmals am Tag nach stunden vergeben.

D.h.

22.01.13 Raum 1 08:00 Uhr bis 10:00 Uhr Kollege A
22.01.13 Raum 1 12:00 Uhr bis 17:00 Uhr Kollege B


Nun Könnte Kollege C kommen und den Raum von 10:00 bis 12:00 Uhr buchen.

Nur möchte ich jetzt per MySQL abfragen ob das geht. D.h. Wenn C eingibt 09:30 Uhr bis 13:00 Uhr soll kommen, NEIN geht nicht.

Meine Datenbank sieht so aus:

vernehmung_id smallint(10)
vernehmung_raum_id smallint(10)
vernehmung_tag date
vernehmung_beginn varchar(5)
vernehmung_ende varchar(5)
vernehmung_user_id smallint(10)
vernehmung_user_name varchar(40)
vernehmung_time int(15)

Ich denke vernehmung_beginn und vernehmung_ende werde ich nicht als VARCHAR lassen können.

Hat jemand eine Idee?

unset 23-01-2013 00:54

Deine Vermutung ist richtig. Du wirst sie zu irgendwie erfassbares Zeit-Werten umwandeln müssen. MySQL-Nativ oder ein simples Unix-Timestamp (den MySQL ja auch kann) sollte vollkommen ausreichen. Wichtig ist nur, dass dein Vergleichswert ebenfalls dem Format entspricht.

Syntax (ungeprüft –*mir fällt grad auf, schon seit Monaten kein MySQL mehr von Hand geschrieben zu haben):

Code:

SELECT * FROM belegung WHERE vernehmung_beginn <= vergleichszeitpunkt AND vernehmung_ende >= vergleichzeitpunkt AND vernehmung_id = raumid
Ein oder mehr Ergebnisse: Keine Belegung möglich, der gewünschte Starttermin liegt innerhalb einer Belegung. Selbes natürlich auch noch mal mit dem Endtermin. Das geht auch in einem Query, aber das darfst du selbst ausknobeln –*die Idee kommt hoffentlich rüber ;)

Damit bist du aber noch nicht am Ende. Sauber wäre es, einen gewissen Schwellwert für Übergänge zu berücksichtigen. D.h. wenn zwischen zwei Belegungen nur 5 Minuten liegen, macht es keinen Sinn hier eine Buchung zuzulassen –*jedenfalls nicht, ohne eine Warnmeldung auszugeben.

BTW.: Vernehmung? :D

bofan 23-01-2013 08:54

Danke. Ich probier mal was aus. :)

Off-Tropic

Ja ein Intranet-Angebot für eine Ermittlungsbehörde.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:33 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG