Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank alte Einträge löschen

Einklappen

Neue Werbung 2019

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

  • Datenbank alte Einträge löschen

    Hallo,

    hab mal wieder ein kleines Problem.
    Hab zu Übungszwecken einen Shop gebaut, die Daten im Warenkorb des Kunden werden in einer Datenbank gespeichert.
    Nun möchte ich das alle Einträge in der Warenkorb-Tabelle die älter als 2 Tage sind gelöscht werden.

    ich würde es mit folgendem Befehl machen:
    PHP-Code:
    $sql="DELETE timestamp (Tabellenspalte)
          FROM warenkorb (Tabellenname)
        WHERE DATE(timestamp) = date(date_sub(now(), INTERVAL - 2 DAYS))"

    Ich denke mal das laut dem Befehl oben ja nur die eine Tabellenspalte gelöscht wird und nicht der ganze Datensatz der dort mit dran hängt.
    Wie könnte ich es machen das der komplette Datensatz (Preis, Name usw.) gelöscht wird.
    Und das zweite wäre, wo müßte ich das eintragen?

  • #2
    Einfach das "DELETE timestamp" mit "DELETE * " ersetzen, sodass der gane Datensatz gelöscht wird

    Kommentar


    • #3
      Mit Delete löschst du so oder so den ganzen Datensatz. Ich verstehe nicht ganz was nun eigentlich dein Problem ist? Mit Delete kann man keine Spalten oder so löschen.

      Kommentar


      • #4
        Danke für die Antworten.

        Das mit DELETE der komplette Datensatz gelöscht wird, wußte ich nicht, ich ging davon aus, das nur die Spalte die man dort angibt gelöscht wird.
        Aber Du hast mich ja jetzt eines besseren belehrt.

        Meine zweite Frage war, wie ich das jetzt einbauen kann.
        Wenn ich zum Warenkorb gehe, zeigt er mir für den jeweiligen Kunden alle Artikel an, die dieser irgendwann mal in den Warenkorb gelegt hat aber nicht bestellt hat.
        Aus der Datenbank werden die Daten ausgelesen mit:

        PHP-Code:
        $sql "SELECT kunde, artikelnr, menge
                        FROM warenkorb
                        WHERE kunde = :kunde"

        Und vor diesem Auslesen müßte das Delete ja eingebaut werden. Kann man das verbinden mit dem select oder müßte das wie oben aussehen nur mit "$sql2"?

        Kommentar


        • #5
          Alte Einträge kannst du über einen Cronjob löschen. Dass deine Kunden einen Garbage-Collector aufrufen halte ich für unsinnig.

          Kommentar


          • #6
            Wenn ich den Code so einbauen kann, dass er aufgerufen wird bevor die Artikel aus der Warenkorb-Tabelle genommen werden, dann brauche ich Cronjob nicht. Habs mir für die Zukunft abgelegt, aber bei dieser Übung kann ichs leider nicht verwenden.

            Kommentar

            Lädt...
            X