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...


  • #2
    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")); 
    Under Construktion

    Kommentar


    • #3
      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

      Kommentar


      • #4
        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
        Create your own quiz show.

        Kommentar


        • #5
          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 ^^

          Kommentar

          Lädt...
          X