Zeiten berechnen

Hallo Leute,
ich bin gerade dabei einen kleinen Shop einzurichten. Nun habe ich mich erstmals mit phpmyadmin beschäftigt und komme nicht wirklich damit klar (muss dazu sagen, dass ich auch kein PHP-Experte bin).
Ich möchte, dass die Warenkörbe automatisch nach 3 Tagen gelöscht werden.
Hierzu habe schon ein paar Codeschnipsel gefunden, die mir allerdings nicht wirklich weitergeholfen haben

SELECT * FROM m_warenkorb WHERE m_timestamp < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 3 days));
SELECT * FROM m_warenkorb WHERE DATEDIFF(NOW(), m_timestamp) >= 3

In phpmyadmin habe ich die Tabelle m_warenkorb mit der Spalte m_timestamp (current_timestamp) gesetzt, sobald ein Kunde etwas in den Warenkorb legt wird das dort gespeichert.
Muss ich, um damit arbeiten zu können, in der Tabelle ein weiteres Feld mit „Date“/„Datetime“ anlegen? Oder warum funzt das bei mir nicht? :frowning:

Ja, du brauchst ein Datumsfeld (DATE oder DATETIME wäre imho angebracht) um Datensätze nach Datum löschen zu können. Die Spalte kannst du per phpmyadmin per Klick anlegen. Du musst sie in deinem Script natürlich auch füllen wenn Du dort einen neuen Datensatz speicherst. Ohne Werte darin wird natürlich auch eine Abfrage nach dem Datum nichts finden.

Hi Threadi,
vielen lieben Dank!
Kann man so eine Zeitenberechnung dann gar nicht mit dem timestamp lösen?:rolleyes:

Doch. Du kannst in MySQL sowohl mit Timestamps als auch mit echten Datumsangaben rechnen. Die Entscheidung welchen Weg Du gehst ist dir überlassen. Ich würde den Weg über DATETIME gehen, da das anders als Timestamps auch nach 2032 noch funktionieren wird und die Zeiten in der Datenbank auch lesbarer hinterlässt.

Ohjeee, jetzt hab ich gesehen, was da so schief läuft.
Hab einen CURRENT_TIMESTAMP gesetzt, nur irgendwie wurde dann immer das falsche Datum genommen( im Juni). Da ich ja immer die letzten 3 Tage auswählen wollte hat das natürlich alles nicht funktioniert… der August liegt da ja noch in weiter Zukunft :rolleyes:

Ich danke dir vielmals für deine Geduld!!!