tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
13
ZUGRIFFE
765
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    andyK andyK ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    200
    Hallo,

    ich habe eine Tabelle, die u.a. eine Spalte mit einem Datum hat.
    Ist es irgendwie möglich, einen Datensatz nach Ablauf einer bestimmten Zeit
    automatisch aus der DB zu löschen?

    Bsp. Datum + 14 Tage
     
    Learning By Doing.... Oder?

  2. #2
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    In welcher Form hast du das Datum gespeichert? Als "time()" oder "tt.mm.yyyy"?

    Für das erstere der Fall sein sollte ist es relativ simpel:
    PHP-Code:
    $vor14tagen $time() - (14*24*60*60);
    $sql "DELETE FROM tabelle WHERE datum < '$vor14tagen' ";
    # nicht getestet ! 
     
    »

  3. #3
    andyK andyK ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    200
    Bis jetzt is es in noch keinem Format gespeichert. Hatte nur erstmal die
    Idee.

    Aber führt sich der Code denn auch selber aus? Es passiert doch eigentlich
    immer nur was, wenn man irgendetwas drückt (bspw.) oder?
     
    Learning By Doing.... Oder?

  4. #4
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    Baust es einfach irgendwo in dein Script ein. Am besten bevor du die Datanbankinhalte ausliest, damit veraltete Einträge nicht gezeigt werden!
     
    »

  5. #5
    andyK andyK ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    200
    Ja, klingt logisch. Ich werd's mal probieren.

    Dank an euch!
     
    Learning By Doing.... Oder?

  6. #6
    andyK andyK ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    200
    Eine dumme Frage noch...

    Von welchem Typ muss die Datumsspalte sein?
     
    Learning By Doing.... Oder?

  7. #7
    signo signo ist offline Mitglied
    Registriert seit
    Jan 2004
    Beiträge
    20
    Original geschrieben von _voodoo
    In welcher Form hast du das Datum gespeichert? Als "time()" oder "tt.mm.yyyy"?

    Für das erstere der Fall sein sollte ist es relativ simpel:
    PHP-Code:
    $vor14tagen $time() - (14*24*60*60);
    $sql "DELETE FROM tabelle WHERE datum < '$vor14tagen' ";
    # nicht getestet ! 
    dazu hätte ich noch eine frage :> hier löscht man den datensatz ja nur durch aufrufen dieses querys. gibt es denn eine möglichkeit das automatisch machen zu lassen ? also wenn ich meinetwegen 7 tage die seite nicht besuche, daß sich der datensatz automatisch löscht ?

    weil sonst muss ich ja das query und damit auch ne seite oder per db das machen gibts ne möglichkeit das voll zu autmatisieren ? :>

    danke
     

  8. #8
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    CronJob
     
    »

  9. #9
    signo signo ist offline Mitglied
    Registriert seit
    Jan 2004
    Beiträge
    20
    Ahhh hab ein bissl gegoogelt :> Danke das wusste ich noch nicht
     

  10. #10
    bunterhund bunterhund ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    10
    Wo wir schonmal beim Thema sind, ich hatte vor ein paar Tagen mal dashier geschrieben:
    PHP-Code:
    ...
    //Zeitvariablen
      
    $data $row["time"];
      
    $data time() - $data;
      
    $data2 $row2["testtime"];
      
    $data $data2-$data;

    ...

    if (
    $data2 <= $data) {
        
    $delete "DELETE FROM test WHERE ID='$id'";
        
    mysql_query($delete) or die(mysql_error());
      }
    ... 
    '...' steht dafür, dass dort noch etwas dazwischen lieg, was nicht mit dem 'delete'-Prozess zu tun hat.
    Ich steh im momment auf dem Schlauch, wie man so schön sagt. Vieleicht könnt ihr mir weiterhelfen.
    Geändert von bunterhund (27.08.04 um 11:32 Uhr)
     
    mfg
    Bunter Hund

  11. #11
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    Und was ist das Problem?
     
    »

  12. #12
    bunterhund bunterhund ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    10
    Ups, 'tschuldigung. Ich wusste, ich habe etwas vergessen.
    Das Problem ist, dass der Datensatz in der Datenbank nicht gelöscht wird. Das hängt, glaube ich zumindest jetzt, mit der Zeit zusammen. Ich habe grade ausprobiert, was passiert, wenn man 'if ($data2 <= $data) { ' in 'if ($data2 >= $data) { ' umwandelt. Dann wird es aber sofort gelöscht, was aber nicht Sinn der Sache war
    Geändert von bunterhund (27.08.04 um 12:12 Uhr)
     
    mfg
    Bunter Hund

  13. #13
    Registriert seit
    Feb 2004
    Ort
    Merseburg
    Beiträge
    406
    ich würde es so machen:

    PHP-Code:
       $data1 $row["time"];   //postingtime
      
    $data2 time() - $data1
      
    $data3 $row2["testtime"];  //max alter z.b. bei 10 Tage sollte dies drinne stehen: 864000
     
    if ($data2 $data3) {
    delete ... 
     

  14. #14
    bunterhund bunterhund ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    10
    Danke für die Hilfe, es klappt jetzt.
     
    mfg
    Bunter Hund

Ähnliche Themen

  1. Automatisch zum neuen Datensatz in Access!
    Von pglw im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 14.12.09, 12:05
  2. Datensatz automatisch nach Datum löschen
    Von forsterm im Forum PHP
    Antworten: 1
    Letzter Beitrag: 10.03.05, 15:14
  3. Datum je Datensatz automatisch ergänzen
    Von stabory im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 31.01.05, 12:00
  4. neuen Datensatz automatisch ausdrucken
    Von azaro im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 06.10.04, 13:21
  5. Datensatz aus TXT löschen
    Von MajorWindbeutel im Forum PHP
    Antworten: 13
    Letzter Beitrag: 03.02.04, 20:03