Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datensätze jeden Tag löschen

Empfohlene Antworten

Veröffentlicht

Hi

Ich hab einen Webserver mit PHP / MySQL laufen und hab jetzt das Problem, dass ich Datensätze in bestimmten Tabelle

1. Jeden Tag, die vom Vortag

oder

2. ca 5 Tage, nachdem sie eingetragen wurden

löschen will. Kann ich das in Linux mit einem Script machen, brauch ich PHP dafür oder was ganz anderes? Vielleicht ist es ja ganz leicht, aber ich komm momentan nicht drauf. Danke für jede Hilfe.

Noxy

Gibt mehrere Möglichkeiten sowas zu realisieren.

1) erstelle ein php skript das die Datensätze löscht. Dieses Skript rufst du per Cron-Job auf (lynx wget...)

2) einbau der löschroutine in das bestehende programm wenn neue Datensätze hinzugefügt werden, wird vorher geschaut, ob es noch "alte" Datensätze gibt, die gelöscht werden können.

jo ich nehme mich meinem Vorredner an.

ergänzung:

ganz einfach vom aktuellen datum + uhrzeit den timestamp bei den datensätzen hinten mit reingeben und daran dann erkennen welche die "alten" datensätze sind bzw welche noch "aktuell" sind.

Gruß

kills

Hmm, also 1 würde denk ich gehen, aber bei 2 ist das Problem, dass wenn die Seite pro Tag 20 mal aufgerufen wird, 20 mal der Löschbefehl abgesetzt wird, obwohl das eigentlich nicht nötig wäre...

Was würde denn das ungefähr mit timestamps aussehen, wenn ich Einträge vom letzten tag oder von der letzten woche löschen will?

Wenn du den Timestamp in der DB bei den Datensätzen hast, und du willst z.B. alle Beiträge der letzten 24h löschen:


$ab_tag = time() - 86400; // Aktuelle Zeit minus 24 Stunden
$ab_woche = time() - 604800; // Aktuelle Zeit minus 7 Tage (7*24)
$sql_tag = "DELETE FROM tabelle1 WHERE zeit <= $ab_tag";
$sql_woche = "DELETE FROM tabelle1 WHERE zeit <= $ab_woche";
[/PHP]

Da der Timestamp ja die Sekunden seit 19XX (k.A. welches Jahr genau) zählt, mußt du also immer mit Sekunden arbeiten.

1 Minute = 60 Sekunden

1 Stunde = 60 Sekunden * 60 Minuten = 3600

1 Tag = 3600 Sekunden = 24 Stunden = 86400

1 Woche = 86400 Sekunden * 7 Tage = 604800

usw.

Ich wollte das ganze grad einbauen, doch ich hab noch ein Problem: Kann es sein, dass der Mysql timestamp und der PHP time() timestamp unterschiedlich sind? Der in Mysql hat 14 Zeichen, der in PHP 10 Zeichen oder hab ich was falsch gemacht?

Mmm, da bin ich nu überfragt, wenn ich einen Timestamp mit in die DB schreibe, lasse ich mir den in PHP generieren und schreibe den dann in ein Feld.

Schau doch mal bei Google Groups nach, ansonsten schaue ich heute abend nochmal in meinen Unterlagen zu Hause.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.