PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datum Abfrage


CocaCola
08.06.2009, 13:42:02
Ahoi,

habe folgende Frage zur Abfrage des Datums.

Ich habe eine Liste mit Terminen und möchte nun, dass nur die Termine ausgegeben werden die noch sind und die Termine, die bereits vergangen sind nicht mehr ausgegeben werden.

<table>
<tr>
<td class="datum"><b>Datum</b></td>
<td class="termin"><b>Event</b></td>
<td class="ort"><b>Ort</b></td>
</tr>
<?
$abfrage = mysql_query("
SELECT ID, datum, event, ort FROM eventliste ORDER BY datum ASC");

//Für jedes Ergebnis eine eigene Zeile in der Tabelle
while($ergebnis = mysql_fetch_object($abfrage))

{
echo "
<tr>
<td class='datum'>".date("<b>d.m.Y</b> H:i", strtotime($ergebnis->datum))."&nbsp;Uhr</td>
<td class='termin'>".$ergebnis->event."</td>
<td class='ort'>".$ergebnis->ort."<a href=\"http://#?id=".$ergebnis->ID."\"> mehr ...</td>
</tr>
";
}
?>
</table>

Muss ich diese Abfrage hier einbauen?

$abfrage = mysql_query("
SELECT ID, datum, event, ort FROM eventliste ORDER BY datum ASC");

in ...

$abfrage = mysql_query("
SELECT ID, datum, event, ort FROM eventliste ORDER BY datum ASC WHERE datum > $datum");

Kann mir da jemand vielleicht weiterhelfen?
Danke im voraus!
Grüße

Indyk
08.06.2009, 13:53:07
Hallo CocaCola, die SQL Syntax wäre in deinem Vorschlag nicht ganz richtig:

SELECT
ID,
datum,
event,
ort
FROM
eventliste
WHERE
datum >= '$datum'
ORDER BY
datum ASC


Das WHERE muss also vor dem ORDER BY stehen. wenn $datum evtl. nur einfach das heutige datum enthält dann kannst du auch die MySQL funtkion NOW nehmen:

WHERE
datum >= NOW()


und denk an die anführungszeichen falls du doch die variable benutzt.

CeBe
11.06.2009, 04:24:00
kleine Ergänzung:

datum >= '$datum'

$datum sollte folgendes Format haben:
YYYY-MM-DD
oder
YYYY-MM-DD hh:mm::ss

MfG
Carsten

CocaCola
11.06.2009, 12:15:32
Es funktioniert leider nicht, auch Termine mit abgelaufenen Daten werden weiterhin angezeigt. Habe das Format richtig und den Code so geändert wie du es hier gepostet hast :(
Könnte es an noch etwas anderem liegen?

Indyk
11.06.2009, 12:23:06
Wenn im SQL-Statement steht das nur Termine ausgegeben werden sollen die größer oder gleich Datum x sind, dann kann es nur an zwei dingen liegen.

Du übergibst ein falsches datum,
oder du verwendest das falsche / alte statement.

CocaCola
16.06.2009, 11:18:59
Also in meiner Tabelle in der Datenbank arbeite ich beim Datum mit "datetime".
Was meinst du mit altem oder falschem Statement?