Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Newsletter, przechowywanie listy odbiorców, Szybkie przetworzenie 50-150tys rekordów
grzegory
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 7.06.2008

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


Witajcie,
Mam taki o to problem. Mianowicie jestem w trakcie pisania newslettera/mailingu. Ma on być dość rozbudowany, wiadomości będą rozsyłane do firm pobieranych z bazy według roznego typu kryteriow (czas obecnosci w bazie, slowo kluczowe, grupa itd), akurat to nie jest najważniejsze.

Do tej pory pisząc mniejsze mailingi robiłem to dość prosto, formularz zawierał checkboxy z adresami i sie zaznaczało do kogo mają być wysłane maile.

Korzystałem przy tym z dwóch tabel:
Tabela: mailing = id | tytul | tresc | (...dodatkowe kolumny typu załączniki)
Tabela: mailing_send = id | id_mailing | email
Nastepnie robiłem:
SELECT `mailing`.*, `mailing_send`.* FROM `mailing`.`id`=`mailing_send`.`id_mailing`
Po pomyślnym wysłaniu rekord był kasowany... Proste i bardzo skuteczne. Zbyt proste.

Sprawdzało się to przy małej ilości adresów do rozesłania. W przypadku newslettera o którym teraz piszę, będzie zachodzić potrzeba wysłania 50-150tys maili. Nie wyobrażam sobie zbytnio ładowania wszystkich wybranych według kryteriów adresów. Chyba, że jest na to jakiś szybki sposob. Zrobiłbym to w pętli while jak przy normalnym pobieraniu kolejnych rekordów z bazy.

Co mi chodzi po głowie.
Co zrobić aby optymalnie przygotować listę adresów email do których mają zostać wysłane wiadomości? Przeznaczenie pod 50-150tys rekordów. Należy zaznaczyć, że w tym samym czasie może być rozsyłanych kilka róznych newsletterów z różną listą odbiorców.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grzegory
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 7.06.2008

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


Wiem o tym. Tak planowałem postąpić. Jednak...

Przykładowo, masz dwie tabele:
test1: id, grupa, mail
test2: id, mail

Wykonanie zapytania:
  1. <?php
  2. INSERT INTO `test2` SELECT `mail`, `grupa` FROM `test1` WHERE `grupa`='2'
  3. ?>

Spowoduje to wstawienie w `test2`.`mail` wartosci z `test1`.`grupa`... A nie o to chodzi... Chyba ze masz na to jakies rozwiazanie, bo moze cos w tym zapytaniu robię zle poprostu?
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(grzegory @ 7.06.2008, 23:43:21 ) *
Spowoduje to wstawienie w `test2`.`mail` wartosci z `test1`.`grupa`... A nie o to chodzi... Chyba ze masz na to jakies rozwiazanie, bo moze cos w tym zapytaniu robię zle poprostu?
Dam linka jeszcze raz: INSERT ... SELECT Syntax. Przeanalizuj dokładniej wszystkie możliwości składni INSERT ... SELECT (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 17:54