Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [problem logiczny] Jak zrobic autoresponder ?, Czyli jak to połączyć z baza mysql ?
Maniek159
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 17.01.2010

Ostrzeżenie: (0%)
-----


Czesć,

Sprawa jest następują - otóż, potrzebuję wykonac tzw autoresponder i mam problem logiczny, bo nie wiem jak ugryźć ten problem.

Mam stronę WWW i na niej formularz do zapisu w formie:

"Wpisz imię oraz adres email, a zostaneisz zapisany" - i ludzie, któzy zatwierdzą formularz zapisują się na kurs przeze mnie prowadzony. Wszystko trzymam w bazie danych i z tym problemu nie mam.

probem jest w tym, że chcę wysyłac co tydzień nowa lekcję do każdego zapisanego. W tym momencie moge słać mailingi masowe, ale ja chcę robić coś takiego, że ktoś zapisze się 1 stycznia i 7 stycznia otrzymuje drugą lekcję, a ktoś zapsize się 2 stycznia, to ósmego stycznia otrzyma drugą lekcję.

Chcę by to działo się schematycznie:

Zapis ze strony WWW + pierwsza lekcja na email
7 dnia od zapisania - 2 leckja na email
14 dnia od zapisania - 3 lekcja na email
21 dnia od zapisania - 4 leckja na email
itd.

Chciałbym, by to ile dni ma iśc przesyłka po przesyłce było niezależne od tego kiedy się kto zarejestrował.

Coś takiego jak implebot.pl (działanie).

Może coś pomożecie ?

Pozdro,
Maniek

Ten post edytował Maniek159 16.05.2010, 23:13:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Czyli rozumiem, że lekcje mają być wysyłane dla każdego użytkownika w innym czasie, co 7dni od daty jego rejestracji
Ja bym spróbował tak:
- pierwszą lekcję wysyłasz od razu po rejestracji
- ustawiasz crona, aby codziennie w nocy sprawdzał czy trzeba komuś coś wysłać, czyli:

1. pobierasz z bazy użytkowników i odejmujesz od obecnej daty datę rejestracji
- możesz to zrobić np. funkcją mysql DATE_DIFF, która zwróci różnicę wyrażoną w dniach -> http://dev.mysql.com/doc/refman/5.1/en/dat...nction_datediff
- lub w php:
  1. $date_diff = round((strtotime("now")-strtotime($row['register_date']))/86400);

2. dla każdego pobranego rekordu sprawdzasz czy ta różnica dzieli się bez reszty przez 7 ( bo chcesz wysyłać raz w tygodniu), jeżeli tak to ten rekord zapisujesz sobie do tablicy oraz zapisujesz wynik dzielenia i dodajesz 1, bo to będzie numer lekcji
  1. $users_for_mailing = array();
  2.  
  3. while($row = mysql_fetch_array($result))
  4. {
  5. $date_diff = $row['date_diff'];
  6. $user_email = $row['user_email'];
  7. $divide = $date_diff/7;
  8. $lesson_number = divide +1;
  9. if(is_int($divide))
  10. {
  11. $users_for_mailing[] = array('user_email'=>"$user_email", 'lesson_number'=>"$lesson_number");
  12. }
  13. }

otrzymasz tablicę z użytkownikami, którzy zapisali się 7,14,21,28.....dni od rejestracji, lesson_number to oczywiście numer lekcji, którą trzeba wysłać temu użytkownikowi

Ten post edytował tehaha 17.05.2010, 00:15:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 09:46