2 weken na datum mailtje sturen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Furio Scripting

Furio Scripting

22/11/2016 15:15:49
Quote Anchor link
Beste forumleden,

Ik wil graag 2 weken nadat een actie verlopen is een mailtje sturen naar de klant.
Het veld in de database heet datum_verlopen en is enkel een date field.

Kan ik dit in 1 query opvragen?

$q = 'SELECT * FROM acties WHERE vandaag = 2 weken na verloop_datum...';

Dan laat ik de cronjob elke dag om een bepaalde tijd dit checken....

Kan iemand mij helpen met de juiste query..?
 
PHP hulp

PHP hulp

05/11/2024 15:42:55
 
Ward van der Put
Moderator

Ward van der Put

22/11/2016 15:46:25
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM acties WHERE verloop_datum < NOW() - INTERVAL 2 WEEK


Daarmee alleen ben je er niet: het is ook verstandig te registreren wie je hebt gemaild.
 
Ivo P

Ivo P

22/11/2016 16:39:19
Quote Anchor link
Inderdaad niet alleen de records met datum van vandaag - 2 weken opvragen. Want als je een dag hebt overgeslagen, dan zou die persoon nooi gemaild worden.

Wel dan zoals Ward zegt een extra veld toevoegen waarin bijvoorbeeld een 1 staat dat er gemaild is (of misschien nog beter: de datumtijd van het moment van mailen)

Elke dag kun je dan mailen aan "datum < 2 weken AND registratie is null"
 
Furio Scripting

Furio Scripting

23/11/2016 12:28:14
Quote Anchor link
Ward van der Put op 22/11/2016 15:46:25:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM acties WHERE verloop_datum < NOW() - INTERVAL 2 WEEK


Daarmee alleen ben je er niet: het is ook verstandig te registreren wie je hebt gemaild.


Dit selecteert alle acties ook ouder als 2 weken maar ik wil alleen de acties die precies 2 weken verlopen zijn en dit groeperen bij bedrijf id zodat ik per bedrijf 1 mailtje stuur.

Het bijhouden wie gemaild is lijkt me overbodig als ik elke dag om precies dezelfde tijd een cronjob laat lopen welke checkt of een actie precies 2 weken is verlopen.. moet gek lopen als de cronjob niet loopt, server draait al jaren stabiel.


Toevoeging op 23/11/2016 12:38:38:

Opgelost, now() vervangen voor CURDATE() en < vervangen voor =
 
Ivo P

Ivo P

23/11/2016 12:45:56
Quote Anchor link
"moet gek lopen".

paar opties:
er is een schijf net even vol.
PHP wordt zojuist geupdate door de admin en net in die 20 seconden dat daardoor PHP niet beschikbaar is, draait je script.
Er is een ddos aanval op de server
een ander proces legt net een lock op een van de tabellen in je database
je draait je script om 02:30 en wegens wintertijd>zomertijd was dat tijdstip er niet.
(of komt 2x voor op een dag)

Kortom, het is niet volledig ondenkbaar.
Maar voor jou zal bekend zijn of het een groot probleem is, als iemand ooit een keer die mails mist.

Anders is het ongeveer 1 minuut werk om de kolom extra aan te maken en om je query's aan te passen (een extra eis in de WHERE in de ene query en 1 extra query om die kolom te update).

Daarnaast heb je een "bewijs" op welk moment de mail verstuurd is.
Afhankelijk van de toepassing kan dat een discussie met de ontvanger helpen. (Waarom heb je mijn account verwijderd zonder enig bericht?)
 
Thomas van den Heuvel

Thomas van den Heuvel

23/11/2016 14:20:38
Quote Anchor link
Om alle redenen die @IvoP hierboven noemt is het verstandiger om bij te houden of een mail verzonden is. Immers, de verzending van een e-mail garandeert niet dat deze ook ontvangen wordt (hier kun je ook weer een lijst van redenen voor opstellen a la inbox vol, spamfilter eet je e-mail op et cetera).

Quote:
moet gek lopen als de cronjob niet loopt, server draait al jaren stabiel.

Mja, da's toch een beetje van het niveau "Ik draag nooit een autogordel want ik heb toch nooit een ongeluk". Zolang het goed gaat gaat het goed. Dit lijkt mij een cirkelredenering.

NB wat ook irritant is is wanneer je een melding meerdere keren ontvangt. Een cron zou ook best dubbel / meerdere keren uitgevoerd kunnen worden. Maar jij hebt uiteraard je cronscripts niet in de publieke webdirectory staan toch ;-).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.