login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Elk uur controle

Offline ArcanA - 09/02/2009 19:04
Avatar van ArcanAPHP beginner Hallo,

Ik heb een vraag,
ik heb 2 velden: "Registratietijd" , "Vervaltijd" in mijn TABEL users..

Nu zou ik elk uur een controle moeten doen op alle users, als de vervaltijd vandaag is moet er naar alle users die in deze situatie zitten een mail erstuurt worden, helaas heb ik dit eerder niet met TIMESTAMP gedaan dus ik zoek naar andere mogelijkheden, dan kan ik daar eens achter zoeken..

ArcanA

7 antwoorden

Gesponsorde links
Offline marten - 09/02/2009 19:06
Avatar van marten Beheerder Hoe heb je je databasemodel opgebouwd? Ik neem dan aan dat je een varchar hebt in plaats van een datetime?
Offline Martijn - 09/02/2009 19:06
Avatar van Martijn Crew PHP ik heb tijden als tijd als time() in mn database, daar kun je makkelijk tijden op aanpassen
Offline ArcanA - 09/02/2009 19:07
Avatar van ArcanA PHP beginner Ja klopt, is gewoon een varchar waar ik de datums gewoon insert..
Offline marten - 09/02/2009 19:09
Avatar van marten Beheerder En het is echt onbegonnen werk om het veld naar een date / datetime te converteren?

@Devioursoul
Gezien zijn vorige topic is het beetje te laat om te switchen 
Offline ArcanA - 09/02/2009 19:12
Avatar van ArcanA PHP beginner Ik kan wel naar datatime veranderen, maar heb je dan enig idee met wat je een check doen, zodra iemand de vervaldatum bereikt, er direct een mail naar die persoon word verstuurd?

Sorry voor de lastige vragen  
Offline marten - 09/02/2009 19:16 (laatste wijziging 09/02/2009 19:21)
Avatar van marten Beheerder Je zal een cronjob moeten draaien.

1. Selecteer iedereen die in aanmerking komen voor de mail
  1. SELECT username, email FROM leden WHERE vervaltijd >= NOW() AND mail_verzonden != 1


2. Pak deze query op met je php en verstuur de email
3. Zet het nieuwe veld die je nog aan moet maken (mail_verzonden) op 1.

Waarom gebruik ik het veld mail_verzonden? Dit is om te voorkomen dat leden tweemaal een mail krijgen. Nog beter is het om er ook een datum en tijd op te slaan wanneer je de mail verzonden hebt. Zo kan je in de toekomst meer gericht gaan sturen bv. Het is twee maanden geleden dat je voor het laatst een mail gehad hebt. enz enz

edit
Foutje in query opgelost
Offline Kevin - 10/02/2009 13:20
Avatar van Kevin Crew Ajax/REST Yup, volledig eens met marten, een cronjob op je server elk uur laten uitvoeren die een PHP bestand uitvoert.
In dat PHP bestandje zet je dan je code om die tijd na te gaan.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s