• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Kalender ausgeben

Taberna

Mitglied
Ich habe in einer Datenbank verschiedene Termine. Diese möchte ich ausgeben, allerdings nur dann, wenn die Termine noch in der Zukunft liegen.
Hierzu habe ich folgendes Script geschrieben

<?php
$con = new mysqli("server", "User", "passwort", "Datenbank");

if($con->connect_error) {
die("Zur Zeit keine Termine\n");
};

$sql = "SELECT * FROM Kalender ORDER BY datum, zeit";
$res = $con->query($sql);

if($res->num_rows>0)
{
while($i = $res->fetch_assoc())
{
if(strtotime($i["datum"] > time()))
{
echo "<strong>";
echo date('d.m.Y', strtotime( $i["datum"]));
echo " ". $i["zeit"]."</strong> ".$i["termin"]."<br>";
};
};
};

$con->close();
?>

Leider ergibt die Abfrage -> if(strtotime($i["datum"] > time())) <-
grundsätzlich FALSE als Ausgabe, so dass ich überhaupt keinen Termin angezeigt bekomme.
Wo liegt hier mein Denkfehler ?

Und bytheway gleich die Frage: Mit welchen "Befehl" kennzeichnet man hier im Forum "Code als Code" ?
 
Werbung:
Das sieht mir schon nach einem DB-Design-Fehler aus. Warum nutzt du nicht den Datentyp datetime? Und dann die Abfrage mit

select datum, termin from kalender where datum > now() order by datum
 
HI nu.tella.
Vielen Dank für Deine schnelle Antwort.
Das mit der Einschränkung über "where datum > now()" funktioniert hervoragend.
Um deine Frage zu beantworten: Mir war diese Einschränkung der Ausgabe nicht bekannt, bin echter Neuling im Bereich php und versuche hier erstmal vieles aus, gucke tutorials. Leider alles mit mässigem Erfolg.

Eine Nachfrage sei mir zu der Einschränkung der Ausgabe noch erlaubt.
Kann ich es über WHERE auch einschränken, nur die Termine der nächsten Woche z.B. auszugeben?
Ich bin schon so weit, dass ich vermutlich mit "BETWEEN" eine Lösung schaffen müsste, allerdings fehlt mir die offensichtlich ein Argument:
$sql = "SELECT * FROM Kalender WHERE (datum BETWEEN now() ARGUMENTFEHLT) ORDER BY datum, zeit";
 
Zuletzt bearbeitet:
Werbung:
OK, mit viel weiterem Lesen und experimentieren gefunden. Ich mag die Lösung nun abschliessend noch veröffentlichen, zumindest, so wie ich es gelöst habe:
$sql = "SELECT * FROM Kalender WHERE (Datum > now() AND datum < now() + INTERVAL 1 WEEK) ORDER BY datum, zeit";

Vielen Dank für die tolle Hilfe hier im Forum.
Thread kann geschlossen werden.
 
Sollte auch gehen:

SELECT datum, termin from kalender WHERE datum BETWEEN NOW() and DATE_ADD(NOW() , INTERVAL 7 DAY ) ORDER BY datum
 
Du könntest für den Anfang auch eine normale Textdatei nehmen. Es sei denn Du möchtest mit DB'en spielen.
 
Werbung:
Zurück
Oben