Zukünftige Daten ausgeben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anzeigen
argument
auslese
bringen
code
dank
date
datenbank
datum
entsprechenden wochentag
ergebnis
format
frage
grillen
limit
not
ordern
stehen
tabelle
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi !
Aus der Datenbank ausgeben kannst du so:
$sql = "SELECT [spaltenname] FROM [tabelle] WHERE [where bedindung] = '[where bedindung]"; $result = mysql_query($sql); $row = mysql_fetch_object($result); $datum = $row->[spaltenname];
-
Ja so weit war ich auch schon. Allerdings war die Frage, wie ich das nächste, zukünftige Datum auslesen kann.
Bis jetzt sieht das so aus:SELECT * FROM grillen ORDER BY date ASC LIMIT 1
Allerdings funktioniert das so logischerweise noch nicht. -
entringer-griller schrieb:
Ja so weit war ich auch schon. Allerdings war die Frage, wie ich das nächste, zukünftige Datum auslesen kann.
Bis jetzt sieht das so aus:SELECT * FROM grillen ORDER BY date ASC LIMIT 1
Allerdings funktioniert das so logischerweise noch nicht.
Was meinst du mit zukünftiges Datum?
Ist es schon in der Datenbank gespeichert? -
Mit "zukünftiges Datum" meine ich ein Datum, welches in der Vergangenheit liegt.
Angenommen ich habe vier Daten in meiner DB:
01.03.2010
03.04.2010
02.04.2010
Dann sollte der 02.04.2010 ausgegeben werden.
Beitrag zuletzt geändert: 1.4.2010 17:32:54 von entringer-griller -
Probier doch mal Datumoperationen in MySQL. Vielleicht sowas in der Art:
SELECT * FROM tabelle -> WHERE datum BETWEEN CURDATE() AND DATE_ADD(CURDATE(),INTERVAL 5 DAY)
DATE_ADD addiert das angegebene Intervall zum vorgegebenen Datum. Hier also 5 Tage auf das aktuelle Datum. -
Hey, danke schön, das klingt schonmal gut. Allerdings weiß ich nicht, wie ich das schreiben soll. Wenn ich:
schreibe, dann meint er:$abfrage = "SELECT * FROM grillen WHERE datum BETWEEN CURDATE() AND DATE_ADD(CURDATE(),INTERVAL 5 DAY) LIMIT 1"; $ergebnis = mysql_query($abfrage);
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/fabian/www/includes/next-event.php on line 5
Außerdem gibt CURDATE() das Datum ja im YYYY-MM-DD Format aus, meine Daten sind allerdings im d.m.Y Format gespeichert.
-
Mit dem d.m.Y Format kannst du nichts Anfangen. Für deinen Zweck muss das Jahr zwangsläufig vorne stehen, gefolgt vom Monat, gefolgt vom Tag. Am besten du nutzt dazu den MySQL Typen DATE.
Dann machst du ein einfaches:
SELECT ... FROM ... WHERE datum > CURDATE() ORDER BY datum ASC LIMIT 1
Das macht folgendes: Nur Daten, die größer als das heutige sind (Zukunft) und dann das 1. kleinste Datum auswählen. -
Okay danke. Ich habe jetzt die Daten in das andere Format umgenannt.
Allerdings freut ihn dashier immernoch nicht:
$abfrage = "SELECT * FROM grillen WHERE date > CURDATE() ORDER BY datum ASC LIMIT 1"; $ergebnis = mysql_query($abfrage);
Er meldet immernoch:Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/fabian/www/includes/next-event.php on line 5
EDIT: Oh jetzt hab ichs! Nach dem ORDER BY muss auch stehen "date".
Jetzt hab ich noch folgende Frage: Wie ist es denn möglich, das Datum aus dem YYYY-MM-DD Format zurück ins d.m.Y zu bringen? Kann man dann eventuell auch den entsprechenden Wochentag anzeigen lassen?
Danke im Vorraus!
Beitrag zuletzt geändert: 1.4.2010 18:00:00 von entringer-griller -
ich nehme mal an, dass du das Datum nicht 2x speicherst. Dann ist eine der Spaltenbezeichnungen falsch. Du benutzt einmal die Spalte date und einmal (bei order by) datum.
entringer-griller schrieb:
Okay danke. Ich habe jetzt die Daten in das andere Format umgenannt.
Allerdings freut ihn dashier immernoch nicht:
$abfrage = "SELECT * FROM grillen WHERE date > CURDATE() ORDER BY datum ASC LIMIT 1"; $ergebnis = mysql_query($abfrage);
Er meldet immernoch:Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/fabian/www/includes/next-event.php on line 5
EDIT: Oh jetzt hab ichs! Nach dem ORDER BY muss auch stehen "date".
-
Jetzt hab ich noch folgende Frage: Wie ist es denn möglich, das Datum aus dem YYYY-MM-DD Format zurück ins d.m.Y zu bringen? Kann man dann eventuell auch den entsprechenden Wochentag anzeigen lassen?
Danke im Vorraus! -
ich mach das so:
$datum = explode("-",$mysql->datum); $datumsangabe = $datum[2].".".$datum[1].".".$datum[0];
gibt aber bestimmt noch elegantere Methoden -
Top danke.
hat sonst noch jemand eine Idee wie ich den Wochentag eines bestimmten Datums bekomme? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage