Daten nach einer woche Löschen

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

  • Daten nach einer woche Löschen

    Hallo ich hab eine Mysql Datenbank angelegt mit einer Spalte Datum dort schreibt mysql das erstellungs datum des Eintrags rein im Format Jahr-Monat-Tag H:M:S wie kann ich bei jedem aufruf der datenbank ihr sagen das sie alle einträge die älter als eine woche sind Löschen soll? hab gedacht mir $CreatTime+= 0000.00.07 00:00:00 aber das Würd dann ja auch über 30 tage im Monat raus gehen also ned darauf achten ob ein neuer monat beginnt oder ned ganz zu schweigen davon das ich glaube das das nicht geht. Habt ihr Vieleicht eine Lösung?

    Für jetzt schonn für eure Hilfe!

  • #2
    Hallo,

    für Datum und Zeit hat MySQL eigene Spaltentypen (DATE, TIME, DATETIME). Wenn man die benutzt, kann man ganz einfach MySQL mit den Daten rechnen lassen, z. B.

    Code:
    select `start` + interval 30 day from `TABELLE`
    Wenn man diese Spaltentypen nicht benutzt, ist man selbst schuld

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von AmicaNoctis Beitrag anzeigen
      Hallo,

      für Datum und Zeit hat MySQL eigene Spaltentypen (DATE, TIME, DATETIME). Wenn man die benutzt, kann man ganz einfach MySQL mit den Daten rechnen lassen, z. B.

      Code:
      select `start` + interval 30 day from `TABELLE`
      Wenn man diese Spaltentypen nicht benutzt, ist man selbst schuld

      Gruß,

      Amica
      Also so?
      PHP-Code:
      $Time time();
      $query "select * from Bann where BannTime > $Time + interval 7 day";
      $res mysql_db_query($dbname,$query); 
      $num mysql_num_rows($res);  
      if (
      $num == 0)
      {
      }
      else
      {
      for (
      $i=0;$i<$num;$i++)
      {
        
      $Eintrag mysql_result($res,$i,"ID");
        
      $query "DELETE FROM Bann WHERE ID='$Eintrag'";
        
      mysql_db_query($dbname,$query);
      }

      BannTime ist ein TIMESTAMP und hat als Standartwert CURRENT_TIMESTAMP

      Kommentar


      • #4
        PHP-Variablen in Strings zu verwenden, ist sooo 90er

        Ernsthaft:

        Erstens verkettet man Zeichenketten ordentlich mit dem .-Operator und zweitens ist das in diesem Falle absolut sinnlos, weil MySQL eine now()-Funktion hat, die du dafür verwenden kannst.

        Drittens kannst du das doch gleich mit einer Abfrage machen, wenn du die Where-Klausel vom Select gleich für das Delete verwendest.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          so?
          PHP-Code:
          $query "select * from Bann where BannTime > now() - interval 7 day";
          $res mysql_db_query($dbname,$query); 
          $num mysql_num_rows($res);  
          if (
          $num == 0)
          {
          }
          else
          {
          for (
          $i=0;$i<$num;$i++)
          {
            
          $Eintrag mysql_result($res,$i,"ID");
            
          $query "DELETE FROM Bann WHERE ID='$Eintrag'";
            
          mysql_db_query($dbname,$query);
          }

          Kommentar


          • #6
            SELECT * sollte man nicht verwenden, sonder immer die Spalten selektieren, die man auch wirklich haben will. Außerdem brauchst du hier gar kein SELECT.

            Code:
            DELETE FROM Bann WHERE BannTime < NOW() - INTERVAL 1 WEEK

            Kommentar


            • #7
              Zitat von h3ll Beitrag anzeigen
              Außerdem brauchst du hier gar kein SELECT.
              Hab ich ja auch schon geschrieben, scheint nicht anzukommen.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Zitat von h3ll Beitrag anzeigen
                SELECT * sollte man nicht verwenden, sonder immer die Spalten selektieren, die man auch wirklich haben will. Außerdem brauchst du hier gar kein SELECT.

                Code:
                DELETE FROM Bann WHERE BannTime < NOW() - INTERVAL 1 WEEK

                Kommentar

                Lädt...
                X