CSharp92 Geschrieben 29. November 2011 Teilen Geschrieben 29. November 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
streffin Geschrieben 2. Dezember 2011 Teilen Geschrieben 2. Dezember 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 6. Dezember 2011 Teilen Geschrieben 6. Dezember 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.