Stefan: Kommendes Datum aus Liste

Hallo,

habe einen Datenbank mit folgender Strucktur:

12.02.02;Hamburg;19:30Uhr;Testveranstaltung1
15.09.02;Berlin;19:30Uhr;Testveranstaltung2a
16.09.02;Berlin;20:30Uhr;Testveranstaltung2b
03.10.02;Selm;19:30Uhr;Testveranstaltung3
22.11.02;Troisdorf;19:30Uhr;Testveranstaltung4

Hat jemend einen Idee wie ich aus dieser Datenbank immer den nästliegenden Termin in Bezug auf das aktuelle Tagesdatum ausgeben lassen kann.
Beispiel:
Heute wäre der 24.03.02, dann sollte als Ausgabe nur der 15.09.02 erscheinen und der Termin, der im Feld Ort mit dem auszugebenden übereinstimmt (in einer Abweichung von 1-2 Tagen).
Ab dem 16.09.02 soll dann natürlich nur der 03.10.02 ausgegeben werden usw.

Vielleicht kennt ja jemand ein Script ...?
Vielen Dank für Eure Hilfe.

Stefan

  1. Hallo,

    habe einen Datenbank mit folgender Strucktur:

    12.02.02;Hamburg;19:30Uhr;Testveranstaltung1
    15.09.02;Berlin;19:30Uhr;Testveranstaltung2a
    16.09.02;Berlin;20:30Uhr;Testveranstaltung2b
    03.10.02;Selm;19:30Uhr;Testveranstaltung3
    22.11.02;Troisdorf;19:30Uhr;Testveranstaltung4

    Hat jemend einen Idee wie ich aus dieser Datenbank immer den nästliegenden Termin in Bezug auf das aktuelle Tagesdatum ausgeben lassen kann.

    Wenn es eine MySQL-DB ist:

    SELECT ... FROM tabelle WHERE UNIX_TIMESTAMP(datumsfeld)>UNIX_TIMESTAMP(now()) LIMIT 0,1

    MfG, Thomas

    1. Hi!

      SELECT ... FROM tabelle WHERE UNIX_TIMESTAMP(datumsfeld)>UNIX_TIMESTAMP(now()) LIMIT 0,1

      Oder so :)

      Muß man das mit UNIX_TIMESTAMP vergleichen? ich vergleiche in meine DB einfach zwei Daten direkt, die beide als DATETIME gespeichet sind. Und das geht wunderbar! Spricht das was gegen, oder darf ich hier wieder mal nicht faul sein...

      Grüße
        Andreas

    2. Nachtrag:

      Wenn es eine MySQL-DB ist:

      SELECT ... FROM tabelle WHERE UNIX_TIMESTAMP(datumsfeld)>UNIX_TIMESTAMP(now()) LIMIT 0,1

      Um den aktuellen Tag noch mitzunehmen:

      SELECT ... FROM tabelle WHERE UNIX_TIMESTAMP(datumsfeld)>=UNIX_TIMESTAMP(curdate()) LIMIT 0,1

      MfG, Thomas

    3. Wenn es eine MySQL-DB ist...

      Ist aber eine txt-Datei!!!
      Gibt es da auch ne Möglichkeit in PHP?

      Danke für die Hilfe, Stefan

  2. Hallo,

    habe einen Datenbank mit folgender Strucktur:

    Was ist denn bei Dir eine Datenbank, MySQL, Access, oder eine CSV-Datei?

    12.02.02;Hamburg;19:30Uhr;Testveranstaltung1
    15.09.02;Berlin;19:30Uhr;Testveranstaltung2a
    16.09.02;Berlin;20:30Uhr;Testveranstaltung2b
    03.10.02;Selm;19:30Uhr;Testveranstaltung3
    22.11.02;Troisdorf;19:30Uhr;Testveranstaltung4

    Sieht nach CSV aus :)

    Hat jemend einen Idee wie ich aus dieser Datenbank immer den nästliegenden Termin in Bezug auf das aktuelle Tagesdatum ausgeben lassen kann.

    Was ist ein "Tagesdatum"? Meinst Du den Wochentag?  Oder den Tag des Monats?

    Beispiel:
    Heute wäre der 24.03.02, dann sollte als Ausgabe nur der 15.09.02 erscheinen und der Termin, der im Feld Ort mit dem auszugebenden übereinstimmt (in einer Abweichung von 1-2 Tagen).

    Jetzt verstehe ich mache anderen, die sich über meine Begriffswahl beschwert haben :)
    Also Du suchst einfach das nächste Datum in der Tabelle nach dem Stichtag, oder? Was denn nun schon wieder für eine Abweichung, wovon?

    Nun ja, erstmal wäre es interessant, was Du da für eien DB verwendest, und dann brauchst Du irgendeine Sprache wie PHP, mit der Du sowas abfragst. Wenn das z.B. MySQL wäre, könntest Du den entsprechenden Datensatz mit einer Abfrage an die Datenbank rausfiltern, sowas der Art

    SELECT MIN(Datum),Ort,Zeit
    FROM tabelle
    WHERE Datum > $Ausgangsdatum

    So grob jedenfalls, das könnte man über PHP abfragen, und dann mit PHP den Datensatz auswerten.

    Wenn Du keine SQL-DB hast sondern irgendeine txt oder csv-Datei, dann mußt Du das etwas nachbauen, ist aber nicht ganz so einfach und ob es dafür fertige Scripte gibt wage ich zu bezweifeln!

    Grüße
      Andreas