Feld-Eintrag mit Variable vergleichen, wie geht das ?

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

  • Feld-Eintrag mit Variable vergleichen, wie geht das ?

    Ich habe ein paar Datensätze in einem Feld gespeichert, nun würde ich gerne haben, dass die autmatisch gelöscht werden, wenn sie den heutigen Tag (vom Datum her) überschritten haben bzw. abgelaufen sind.

    wie ist das möglich ?!
    Mein Ansatz war dieser :

    $result = mysql_query("DELETE FROM blahblah WHERE datum < $date",$db);

    $date ist dabei ein mit date ("Y.m.d") - generiertes Datum und datum ist eben ein Feld in der Tabelle 'blahblah'.

    Geht das denn nicht evtl irgendwie ?!


    PS: Noch eine Frage dazu, kann ich diesen Löschungsvorgang im Hintergrund machen lassen, so dass er keinen Text dabei ausgibt? Im Moment (wie oben, wenn es denn gehen würde) würde php ja noch die einzelnen Daten ausgeben - oder ?!
    Ich würde aber gerne nach der Löschung wieder das Ergebnis sortiert ausgeben - wie lässt sich das dann noch realisieren?


    Danke schonmal im Vorraus

    C-Ya Toby

  • #2
    So geht das nicht. Das fragliche Datenbankfeld muss ein Timestamp-Feld sein, um es vergleichen zu können.
    Das Vergleichsgegenstück kannst du dann mit den Funktionen time() (Timestamp für aktuelle Zeit) und mktime() (Timestamp für einen ganz bestimmten Zeitpunkt in der Vergangenheit oder Zukunft).

    Und nein, der von dir angegebenen Code liefert überhaupt keine Ausgabe.

    CAT Music Files

    Kommentar


    • #3
      ok - timestamp ist es nun, aber wie geht jetzt exakt der Vergleich von statten?
      Irgendwie klappt das immer noch nicht :/

      Danke aber auch erstmal für die Hilfe so weit
      C-Ya Toby

      Kommentar


      • #4
        $vergleichszeit = time(); //diese Zeile, falls du die aktuelle Zeit und das aktuelle Datum benutzen möchtest, ansonsten

        $vergleichszeit = mktime(0,0,0,1,1,2002); //dies für einen bestimmten Zeitpunkt, hier der 1. Januar 2002 00:00:00

        //dann das Löschen selbst:
        $result = mysql_query("DELETE FROM blahblah WHERE datum < $vergleichszeit",$db);

        CAT Music Files

        Kommentar


        • #5
          irgendwie ist das jetzt aber komisch, wenn ich mir jetzt die Daten anzeigen lasse, die ich eingegeben habe (die ja jetzt in einem TimeStamp-Feld sind), dann haben die auch dieses aussehen der Unix-Zeit, welches ich mit dem puren time() command bekomme - wie kann ich das denn ansehnlicher gestalten, oder geht das dann nicht ?
          Aber löschen tut er es auch (noch) nicht wirklich von alleine.

          C-Ya Toby

          Kommentar


          • #6
            ja, das kannst du ansehnlicher gestalten.

            $ansehnliches_datum = date("d-m-Y", $timestamp);

            wobei du für $timestamp natürlich den wirklichen Timestamp-Wert einsetzen musst bzw. die Variable, die diesen Wert enthält.

            CAT Music Files

            Kommentar


            • #7
              warum timestamp??? geht doch auch alles viel einfacher!!!

              die spalte als "datetime" formatieren. und dann folgendes:

              Code:
              $loeschen = mysql_query(" delete from table where datum < now() ");
              und fertig ist ....
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar

              Lädt...
              X