PHP Sendeplan

Zneaf

Erfahrenes Mitglied
Hey Leute ;)

derzeit arbeite ich an einem Sendeplan.
Dieser soll den Zweck erfüllen, dass man eintragen kann, wenn ein Event stattfindet.
Das habe ich auch soweit geschafft.

Das ganze ist Datenbank bezogen. Soll heißen: Die Daten, die man für das Event einträgt (Titel, Uhrzeit, Datum etc.) werden durch eine erste Datei in einer Datenbank gespeichert und von einer 2ten Datei ausgelesen und den Usern angezeigt. Events können nur Admin's eintragen.

Hoffe das war einigermaßen verständlich^^

Mir stellt sich nun nur folgendes Problem:
wie schaffe ich es, dass die Events automatisch gelöscht werden, die bereits in der Vergangenheit liegen?

Hat vielleicht irgend jemand ne Idee?

Wenn ihr etwas Code benötigt, sagt einfach bescheid.
Falls ihr sonst noch Fragen habt, stellt sie ruhig =)

Vielen Dank im Voraus

LG Zneaf :)
 
Du musst am Anfang der Seite wo die Termine angezeigt werden eine Löschabfrage einbauen.

SQL:
DELETE FROM deine_tabelle WHERE datums_feld < Now()
 
Hey tombe =)

super Idee :D

Hab nur eine Frage: muss ich diese Löschabfrage dann ganz an den Anfang vom Body setzen? also bevor irgend etwas andres abgefragt oder getan wird? =)

Vielen Dank für deine Hilfe

LG Zneaf :)
 
Ja klar, sonst werden ja die vergangenen Termine zuerst angezeigt und erst dann aus der DB gelöscht.
 
Hey tombe =)

also ich hab das mal ausprobiert, aber es tut sich leider nichts =(

Hier mein Code:
PHP:
require_once("config3.php");

// Vergangene Sendungsdaten löschen.
$sqlupdate = "DELETE FROM sendeplan WHERE date < Now()";

// Daten aus Datenbank abholen und absteigend nach id sortieren.
$sql = "SELECT * FROM sendeplan ORDER BY date ASC";
$result = mysql_query($sql,$db);

// Darunter kommt die Ausgabe

Ich bin mir nicht sicher, ob es am Datum liegt...also wie es in der DB abgespeichert wird.
Es hat folgende Formatierung (automatisch) YYYY-MM-DD (Jahr, Monat, Tag).

Hast du vllt. ne Idee, woran es liegen könnte?

Vielen Dank im Voraus ;)

LG Zneaf :)
 
Hey tombe =)

also ich hab das mal ausprobiert, aber es tut sich leider nichts =(

Hier mein Code:
PHP:
require_once("config3.php");

// Vergangene Sendungsdaten löschen.
$sqlupdate = "DELETE FROM sendeplan WHERE date < Now()";

// Daten aus Datenbank abholen und absteigend nach id sortieren.
$sql = "SELECT * FROM sendeplan ORDER BY date ASC";
$result = mysql_query($sql,$db);

// Darunter kommt die Ausgabe

Ich bin mir nicht sicher, ob es am Datum liegt...also wie es in der DB abgespeichert wird.
Es hat folgende Formatierung (automatisch) YYYY-MM-DD (Jahr, Monat, Tag).

Hast du vllt. ne Idee, woran es liegen könnte?

Vielen Dank im Voraus ;)

LG Zneaf :)

Du sendest aber das MySQL Statement schon an den Server ?
Weil wenn das dein kompletter Code ist, dann ist
PHP:
$sqlupdate = "DELETE FROM sendeplan WHERE date < Now()";
nur ein String der im Speicher liegt.

mysql_query() brauchst du auch für den DELETE.
 
Also bei TechnoBase mach ich es so, dass ich 1x täglich die Einträge per Cronjob lösche und nicht alle paar Sekunden durch klicken. Sonst wird die Datenbank ja nicht mehr froh ;-)
 
Cronjob ist natürlich auch eine Möglichkeit.

Die Frage ist halt ob die Termine nur auf das Tagesdatum hin überprüft werden oder ob die Uhrzeit auch eine Rolle spielt.

Wenn es eine Veranstalltung gibt die heute (18.04.) um 22.30 Uhr beginnt, dann könnte man sie mit obiger Abfrage "genauer" löschen.
 
Hi Leute =)

das is mir ja fast peinlich....
m0dpad hat recht....ich hab den mysql_query() vergessen....

Danke für diesen Hinweis =)

@aKraus: was genau ist "Cronjob"?^^ Sorry für die Frage, aber das hab ich noch nie gehört^^ Bin lediglich Hobby-Programmiere :D

Vielen Dank für eure Hilfe =)

LG Zneaf ;)
 
Mit einem Cronjob kannst du bestimmte Skripts zu bestimmten Zeiten aufrufen/ausführen.

Wenn dein Server Cronjobs anbietet, kannst du angeben das z.B. jeden Tag zu einer bestimmten Uhrzeit die Datei xyz.php aufgerufen wird.
In dieser Datei kann dann die Löschanweisung zum Löschen der abgelaufenen Veranstaltungen stehen.

Ansonsten kannst du dich unter cronjob.de anmelden und Cronjobs anlegen.
 
Zurück