kostenloser Webspace werbefrei: lima-city


Eintrag dessen Datetime feld älter als ein tag ist löschen...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    garlian

    Kostenloser Webspace von garlian

    garlian hat kostenlosen Webspace.

    Hallo
    ich möchte einen Eintrag dessen datetime Feld älter als ein Tag ist löschen, wie bewerkstellige ich das möglichst gut?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    Also, wenn ich das richtig verstanden habe, dann hast du eine MySQL-Tabelle mit einem Feld (nennen wir es: 'datumsfeld') des Typs 'DATE'. Hier wird das Datum in der Form
    YYYY-MM-DD
    abgespeichert.

    Wenn das so stimmt, dann könntest du es so lösen:

    $sql = 'DELETE FROM tabellenname WHERE datumsfeld != \''.date('Y-m-d').'\'';

    (löscht Einträge, die nicht von heute sind)
    oder
    $sql = 'DELETE FROM tabellenname WHERE datumsfeld != \''.date('Y-m-d').'\' AND datumsfeld != \''.date('Y-m-d',(time()-86400)).'\'';

    (löscht Einträge, die nicht von heute und nicht von gestern sind)
    mysql_query($sql)


    Ich habs nicht ausprobiert, aber prinzipiell funktioniert es so.

    Beitrag geaendert: 14.1.2007 13:41:52 von sandrock-jonas
  4. moinsen...

    aus diesem grund erstelle ich meine datumsformate grundsätzlich mit dem timestamp... damit finde ich, lässt sich besser arbeiten.

    dabei wird halt anstatt dem datum, nur ein wert von zahlen gespeichert (das is die anzahl der sekunden glaube seit 01.01.1970) damit würde deine db-lösch-abfrage dann so aussehen...

    // damit wird alles gelöscht, was älter als 24 stunden (86400 sekunden)  ist
    $sql = 'DELETE FROM tabellenname WHERE datumsfeld <=time()-86400';
  5. t****u


    dabei wird halt anstatt dem datum, nur ein wert von zahlen gespeichert (das is die anzahl der sekunden glaube seit 01.01.1970) damit würde deine db-lösch-abfrage dann so aussehen...
    // damit wird alles gelöscht, was älter als 24 stunden (86400 sekunden)  ist
    $sql = 'DELETE FROM tabellenname WHERE datumsfeld <=time()-86400';


    sollte wohl eher wie folgt heißen:

    $sql = 'DELETE FROM tabellenname WHERE datumsfeld <='.(time()-86400);
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!