![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem natury algorytmicznej. Piszę aktualnie skrypt, w którym użytkownicy się zapisać do poszczególnych kanałów, a w tych z kolei pojawiają się co jakiś czas systemowe wiadomości. Wiadomości wyświetlają się w sidebarze, ale przy dopisaniu się do kanału można wybrać również opcję wysyłania wiadomości mailem. Dostępne są możliwości wysyłki natychmiastowej, raportu raz w tygodniu, albo brak e-maili. Nie ma problemu z wysyłką natychmiastową i brakiem e-maili. Zaciąłem się jednak przy wysyłce maili raz na tydzień. Jak wiadomo różni użytkownicy mogą się zapisać do różnych kanałów, a więc każdy dostanie inne wiadomości w swoim mailu. Moje pytanie więc, jak pobrać te dane z bazy? Schemat jest następujący: user: - id channel - id - name message: - id - title - content - channel_id channel_user: - id - channel_id - user_id Można oczywiście pobrać najpierw użytkowników, a później dla każdego usera w pętli for pobrać odpowiednie wiadomości. Nie chciałbym jednak robić tego w ten sposób. Macie może jakieś inne pomysły? Pozdrawiam Marcin |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ok, zrobiłem następującą rzecz:
1) Pobrałem z bazy wszystkie wiadomości, wraz z channel_id, które zostały utworzone w ostatnim tygodniu. 2) Przejechałem po wynikach forem i stworzyłem nową tablicę, gdzie klucze to channel_id, a wartości to połączone wiadomości, które należą do danego kanału 3) Następnie pobrałem emaile oraz kanały, do których są zapisani użytkownicy. Skorzystałem tutaj z podpowiedzi thek'a i użyłem grupowania. Dostałem więc następujące dane: test1@example.com | 1,2,4 test2@example.com | 1,3,5 4) W pętli for zrobiłem explode() na polach z kanałami, a następnie w drugiej zagnieżdzonej pętli po explode'owanych kanałach pobrałem z tablicy z 2) odpowiednie wiadomości i je ze sobą połączyłem. 5) Mając email i wiadomość, którą mam wysłać przekazałem to do funkcji, która się tym odpowiedni juz zajmie. Teraz moje pytanie czy takie podejście jest ok? Czy te zagnieżdżone pętle to nie samobójstwo (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował zelu 23.04.2010, 11:19:18 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 01:42 |