kostenloser Webspace werbefrei: lima-city


Überschneidungen von Zeiträumen in Mysql finden

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Hallo,

    ich arbeite gerade an einer Art Verleihliste.
    Die Verleih-Informationen werden in einer Tabelle abgespeichert.
    es gibt ein Feld, welches den Starttermin des Verleihens als unix-timestamp, sowie ein Feld, welches den Endtermin als Timestamp beinhaltet.

    Ich möchte nun die Zeilen auslesen, in denen sich die Verleih-Zeiträume überschneiden.
    Ich habe mich bereits daran versucht, aber irgendwie eine Blockade, daher hoffe ich auf eure Hilfe :)

    Folgendes habe ich bisher:
    SELECT * FROM `verleih`
          WHERE ((leihdatum >= '".$start_time."'
          AND leihdatum <= '".$end_time."')
          OR (rueckgabedatum >= '".$start_time."' AND rueckgabedatum <= '".$end_time."'))


    $start_time ist der timestamp, zu dem verliehen wird
    $end_tme ist der timestamp, an dem die Rückgabe erfolgt.

    Liebe Grüße und vielen Dank
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du berücksichtigst etwas nur, wenn Zeitraum B binnen Zeitraum A liegt. Was du aber willst, ist eine Berücksichtigung immer dann, wenn eine Überschneidung vorliegt. AND kann man dazu nicht gebrauchen.

    Edit: Sorry, habe das vorhin falsch verstanden. Dieser Beitrag kann gelöscht werden.

    Beitrag zuletzt geändert: 7.5.2011 21:36:59 von drafed-map
  4. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Tut mir leid, aber ich blicke da nicht mehr durch.
    Was kann ich denn anstatt von AND benutzen?

    EDIT => Würde das so gehen?
    where leihdatum BETWEEN $start_time AND $end_time OR rueckgabedatum BETWEEN $start_time AND $end_time


    Beitrag zuletzt geändert: 7.5.2011 21:19:35 von speedtouch92
  5. speedtouch92 schrieb:
    Tut mir leid, aber ich blicke da nicht mehr durch.
    Was kann ich denn anstatt von AND benutzen?

    EDIT => Würde das so gehen?
    where leihdatum BETWEEN $start_time AND $end_time OR rueckgabedatum BETWEEN $start_time AND $end_time


    Probieren geht über studieren ;) An Stelle von AND und OR gibts auch noch XOR
  6. Autor dieses Themas

    speedtouch92

    Kostenloser Webspace von speedtouch92

    speedtouch92 hat kostenlosen Webspace.

    Ich hab jetzt einmal ein wenig getestet:
    Bis auf einen Fall, erkennt der Code alle Überschneidungen:

    Vorhandener Verleih vom 01.05.2011 bis zum 04.05.2011

    Einzutragender Verleih vom 02.05.2011 bis zum 03.05.2011.

    Dass es da Überschneidungen gibt, merkt das System nicht.
    Hat da noch jemand eine Idee?
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!