Nur Kommendes anzeigen

nordi

Erfahrenes Mitglied
Hi,

also hab auf meiner Seite ein kleines Script, wo Freunde eintragen können, was in den nächsten Tagen so los ist (MiniKalender) - auf der Startseite wird dann angezeigt, was als nächstes ansteht. Wenn das Datum dann aber abgelaufen ist, soll es nicht mehr drinnen stehen, sondern der nächste Termin angezeigt werden. Das ganze läuft über ne MySQL-Datenbank und habe es so abgefragt:

Code:
$result = mysql_query("SELECT id,event,name,zeit,datum FROM $event LIMIT 1");

Ich gaub ich muss noch etwas hinter das LIMIT schreiben, weiß aber nicht, wie ich "zeitlich" Daten abfrage..

Bin dankbar für jede Antwort!

Grüße aus Köln!
 
Hallo,

wenn die zeit als timestamp speicherst, kannst du ORDER BY zeit DESC nehmen.

PHP:
$result = mysql_query("SELECT id,event,name,zeit,datum FROM $event ORDER BY zeit DESC LIMIT 1");
 
Das funktioniert mit "WHERE"

Falls du ein DATETIME Feld in deiner DAtenbank gewählt häst, müsste schon etwas in der Art ausreichen:
PHP:
SELECT * FROM $event WHERE <datetimefeld> > now() LIMIT 1
 
Was für ein Datentyp hat das Feld `zeit`? Wenn es Date ist sollte sowas funktionieren:

Code:
$result = mysql_query("SELECT id,event,name,zeit,datum FROM $event WHERE `zeit` > now( ) AND `datum` > now() LIMIT 1");

Also alle Datensätze, bei welchem `zeit` grösser ist als now() :)

;)

Edit:
Ja gut, war etwas zu langsam *augenverdreh* :)
 
@tobee
So habs ichs auch mal probiert, trotzdem wird ja immer das älteste Datum angezeigt, das das Datum ja nicht mit dem heutigen verglichen wird!

@chris_sit & redX
damit hats geklappt! vielen Dank für die schnelle Antwort!
 
Hi, hab da noch ein kleines Problem. Wenn jetzt mehrere Termine in den Kalender eingetragen sind, wird das älteste angezeigt (was also am weitesten entfernt liegt) - es soll aber das nahste kommende angezeigt werden. Hier nochmal mein Code:

Code:
$result = mysql_query("SELECT * FROM $event WHERE datum > now() LIMIT 1");

Eigentlich sollte das doch stimmen, oder? Kann man das irgendwie mit der CURDATE() Funktion machen?
 
Also als TYP ist das datum als " date " deklariert... würdet ihr das anders machen? die Zeit ist als " time " deklariert..
 
Sortiere die Auswahl doch dem Datums nach aufsteigend. Damit sollte zuerst der nächste Termin ausgewählt werden.
Code:
SELECT
        *
  FROM
        $event
  WHERE
        `datum` >= NOW()
  ORDER BY
        `datum` ASC
  LIMIT
        1
Diese Anfrage sollte den nächsten zukünftigen oder heutigen Termin auswählen.
 
Zurück