0711concept: select-abfrage

hallo,
ich will eine select-abfrage (mysql-datenbank)machen, die mir den nächsten Termin einer Veranstaltung ausgibt:

so hab ich es bisher, allerdings wird hier der neuste eintrag (nach datum) ausgegeben und nicht der wiklich nächste termin.

$db->query("SELECT * FROM $n_table ORDER BY datum DESC LIMIT 0,1");

meinplan:
ich vergleiche das datum heute mit dem aller zukünftigen veranstaltungen. das kleinste ergebnis wird dann ausgegeben.

Frage:
wie mache ich den vergleich? mein datum ist als unix-timestamp vorhanden. damit lässt sich doch bestimmt was anfangen?!

0711concept

  1. Hi,

    Vielleicht funktioniert ja folgendes:

    $db->query("SELECT * FROM $n_table WHERE $datum_der_veranstaltung >= $datum_heute ORDER BY datum ASC LIMIT 0,1");

    Damit suchst Du nur die Veranstaltung raus, die heute oder in Zukunft stattfinden. Das Ergebnis ist aufsteigent sortiert, das nächste "oden" und das in ferner Zukunft "unten". So solltest Du mit LIMIT den einen Satz bekommen, den Du haben willst.

    Bei dem Vergleichsoperator >= bin ich mir gerade nicht 100 %ig sicher. Der sollte noch mal kontrolliert werden.

    Grüße von Tom C.

    1. Danke an beide Toms! Funktioniert bestens. Aktuelles datum wird jetzt mit dem Veranstaltuzngsdatum verglichen. So funktionierts. 0711

  2. Hello,

    ich will eine select-abfrage (mysql-datenbank)machen, die mir den nächsten Termin einer Veranstaltung ausgibt:

    $db->query("SELECT * FROM $n_table where datum > $stichtag ORDER BY datum LIMIT 0,1");

    ggf. musst Du noch eine Typanpassung vornehmen vorher.

    $stichtag = time();

    $db->query("SELECT * FROM $n_table where unix_timestamp(datum) > $stichtag ORDER BY datum LIMIT 0,1");

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau