WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Zeit überprüfen » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Lewi
Stimmt, hab es korrigiert.
von m3rlin
Lewis if-Statement matcht bei


* Der neue Zeitraum begint vor und endet nach dem Bestehenden Zeitraum


nicht. Direkt in MySQL hab ich das mal so gemacht

1: 
2: 
3:
SELECT id FROM $buchungen_table WHERE NOT ((('$start' < start AND '$start' < ende) AND ('$ende' < start AND '$ende' < ende)) OR (('$start' > start AND '$start' > ende) AND ('$ende' > start AND '$ende' > ende)))


Wenn das Statement ein Ergebnis liefert, ist der Zeitraum belegt.

von Lewi
Angenommen, du hast eine Tabelle "buchungen" mit den Spalten "firstday" und "lastday". In dieser ist für jede Buchung eine Zeile enthalten, die Spalten mit den Timestamps des ersten und letzten Tages gefüllt.

$chosen_firstday ist der gewählte erste Tag.
$chosen_lastday ist der gewählte letzte Tag.

Dann:

1: 
2: 
3: 
4: 
5: 
6:
$result = db_query("SELECT * FROM buchungen");
while($data = mysql_fetch_array($result)) {
if ($chosen_firstday <= $data[lastday] && $chosen_firstday >= $data[firstday]) || ($chosen_lastday >= $data[firstday] && $chosen_lastday <= $data[lastday]) || ($chosen firstday <= $data[firstday] && $chosen_lastday >= $data[lastday]) {
$problem = "1";
}
}


Die Variable "$problem" kannst du dann entsprechend verarbeiten.
Ist jetzt nicht kontrolliert, sondern nur mal aus dem Kopf abgeschrieben. Falls es Probleme gibt, kannst du dich ja mal melden.

Gruß

Lewi
von einstein
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
von ATooM
Hallo,
ich habe folgendes Problem ich habe 2 verschieden Zeiträume d.h. von einem bestimmten Tag bis zu einem anderen bestimmten tag. Nun will ich überprüfen und an ein Bestimmter Zeitraum schon belegt ist....
Also das ganze ist ein MIeterscript (wir gehen jetzt von 1Zimmer aus). Man trägt einen Mieter für einen bestimmten Zeitraum ein. Anschließend trägt man einen 2. ein natürlich können die nicht an einem bestimmten Tag das selbe Zimmer haben..,. Wie kann ich das am besten überprüfen?

Nach oben