Ankündigung

Einklappen
Keine Ankündigung bisher.

Termine nach Ablauf automatisch aus der DB löschen oder ausblenden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Termine nach Ablauf automatisch aus der DB löschen oder ausblenden

    Hallo zusammen!

    Ich habe auf meiner Website eine Art Terminkalender erstellt und möchte nun,
    dass die Termine, wenn sie vorbei sind (also ab einem Tag danach),
    nicht mehr angezeigt werden.

    Da ich absolut keine Lust habe, sie immer manuell aus der Datenbank zu löschen,
    suche ich nun einen Weg, dies automatisch zu machen.

    1. Möglichkeit: Die Termine automatisch aus der Datenbank löschen zu lassen
    Ich weiß nicht, ob das möglich ist, aber wenn ja, wäre es mir am liebsten so.

    2. Möglichkeit: Die Termine bei der Ausgabe einfach nicht anzeigen lassen,
    Wenn 1. nicht geht, wäre das wohl die einzige Alternative,
    allerdings weiß ich da auch nicht, wie ich die Abfrage formulieren muss.

    Die Termine sind bei mir im Datumsformat YYYY-MM-DD in der Datenbank gespeichert (DATE-Feld).

    Hoffe, mir kann da jemand weiterhelfen.

    MfG
    Teela

    PS: Ich hab zwar schon ein Thema gefunden, wo es um etwas ähnliches ging,
    allerdings hat mir das nicht wirklich weitergeholfen...

  • Teela
    antwortet
    Zitat von agrajag Beitrag anzeigen
    Das waren jetzt 2 Lösungsvorschläge getreu dem Motto: Warum einfach wenn's auch kompliziert geht

    Da du das ganze schon in einem sinnvollen format in der Db abgelegt hast lässt sich das einiges einfacher lösen:

    Nur die Einträge anzeigen die noch aktuell sind:
    SELECT name, date FROM table WHERE date > NOW()

    Oder die Einträge löschen die in der Vergangenheit liegen:
    DELETE FROM table WHERE date < NOW()
    Echt super, genau so eine Lösung hatte ich gesucht.
    Vielen Dank dafür, ich hätte echt nicht gedacht, dass das so einfach ist ^^"

    Zitat von agrajag Beitrag anzeigen
    Schau dir auch mal die MySQL Datums und Zeitfunktionen an:
    MySQL :: MySQL 5.0 Reference Manual :: 11.6 Date and Time Functions
    Werde ich auf jeden Fall machen ^^

    Einen Kommentar schreiben:


  • agrajag
    antwortet
    Das waren jetzt 2 Lösungsvorschläge getreu dem Motto: Warum einfach wenn's auch kompliziert geht

    Da du das ganze schon in einem sinnvollen format in der Db abgelegt hast lässt sich das einiges einfacher lösen:

    Nur die Einträge anzeigen die noch aktuell sind:
    SELECT name, date FROM table WHERE date > NOW()

    Oder die Einträge löschen die in der Vergangenheit liegen:
    DELETE FROM table WHERE date < NOW()

    Schau dir auch mal die MySQL Datums und Zeitfunktionen an:
    MySQL :: MySQL 5.0 Reference Manual :: 11.6 Date and Time Functions

    Einen Kommentar schreiben:


  • errox
    antwortet
    Es geht auch so : ^^

    Du kannst doch eine Funktion schreiben, die am Start aufgerufen wird. Sie überprüft Alle DATE inhalte deiner Datenbank mit dem Aktuellen Datum. Ist das Aktuelle Datum größer, werden die jenigen einträge gelöscht.
    Mach zuerst ein Jahr Check. Aktuelles Jahr 2008. DB einträge mit 2007 vorhanden -> Delete.
    Aktueller Monat. 3. Einträge mit 1 / 2 vorhanden ->Delete
    Aktueller Tag 23. alle einträge die einen niedrigeren Wert haben -> Delete.

    Das konzept ist sehr einfach. Den Code musst du noch du schreiben.

    Bei hilfe beim schreiben, melden ^^

    Lg errox

    Einen Kommentar schreiben:


  • Hu5eL
    antwortet
    Zitat von Teela Beitrag anzeigen
    Hallo zusammen!

    Ich habe auf meiner Website eine Art Terminkalender erstellt und möchte nun,
    dass die Termine, wenn sie vorbei sind (also ab einem Tag danach),
    nicht mehr angezeigt werden.

    Da ich absolut keine Lust habe, sie immer manuell aus der Datenbank zu löschen,
    suche ich nun einen Weg, dies automatisch zu machen.

    1. Möglichkeit: Die Termine automatisch aus der Datenbank löschen zu lassen
    Ich weiß nicht, ob das möglich ist, aber wenn ja, wäre es mir am liebsten so.

    2. Möglichkeit: Die Termine bei der Ausgabe einfach nicht anzeigen lassen,
    Wenn 1. nicht geht, wäre das wohl die einzige Alternative,
    allerdings weiß ich da auch nicht, wie ich die Abfrage formulieren muss.

    Die Termine sind bei mir im Datumsformat YYYY-MM-DD in der Datenbank gespeichert (DATE-Feld).

    Hoffe, mir kann da jemand weiterhelfen.

    MfG
    Teela

    PS: Ich hab zwar schon ein Thema gefunden, wo es um etwas ähnliches ging,
    allerdings hat mir das nicht wirklich weitergeholfen...
    naja sollte doch net so schwer sein...
    einfach alle eintäge aus der tabelle löschen die kleiner sind als:
    PHP-Code:
    mktime(000date("m")  , date("d"), date("Y")); 

    Einen Kommentar schreiben:

Lädt...
X