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.

Empfohlene Antworten

Veröffentlicht

Guten Tag,

habe ein Script gebastelt, läuft täglich via Cronjob.

SELECT DISTINCT id, email

FROM contact

WHERE date BETWEEN (NOW() - INTERVAL 60 DAY) AND NOW()

Ruft alle Daten der letzten 70 Tagen auf: num zum Problem:

Danach wird überprüft ob Datensatz X länger als Y Tage schon besteht, wenn ja, dann wird eine E-Mail versendet. (Die Tage richten sich nach der ID, kann also unterschiedlich sein. Eine ID hat 5 Tage, kann aber auch 10 Tage haben.) Im Query löse ich das global mit der "höchsten"-Zahl die eine ID hat. Danach überprüfe ich, per PHP, ob das Datum abgelaufen ist bzw die Tage nach dem Datum vergangen sind. Leider ist das wohl nicht die beste Methode. Kennt einer eine bessere?

Zusammenfassung:

> Alle Daten der letzten 70 Tage

> Datensatz wird überprüft, ob Datensatz X Tage vorbei ist

> Wenn ja, wird Email versendet

> Wenn nein, wird nichts getan

btw: Azubi 1. Jahr. Bitte nicht hauen für Missbrauch von MYSQL / PHP :P

Ich bin in Mysql jetzt nicht unbedingt top fit, aber so wie ich die Sache lese, muss in dem Query das Datum des Datensatzes 2x verglichen werden. Einmal gegen now() -60 Tage und einmal gegen now().

date_add sollte das ganze mit etwas weniger rechnen hinbekommen.

Das nächste was performance kostet wäre das distinct. Wie sehen die Daten denn aus ? Warum vergleichst du in PHP das Datum mit, ich vermute der aktuellen Zeit ?

Hast du je ID meherere Einträge und intressierst dich für den jüngsten / ältesten ?

Gruß

Sven

Steht in deiner Tabelle auch die Anzahl an Tagen pro ID die es dauert, bis diese ID als abgelaufen gilt und damit eine E-Mail versendet werden muss?

Wenn ja, könnte man das auch nicht mit in die SQL Abfrage einbauen, sodass du in deinem Programm nur noch die E-Mails verschicken musst, und nicht mehr nochmal jeden Datensatz auf den Sachverhalt überprüfst.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.