![]() |
![]() |
![]()
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%) ![]() ![]() |
Wszystko się zgadza, z pierwotną wersją, która zaproponował Thek (IMG:style_emoticons/default/winksmiley.jpg)
Później była mowa o optymalizacji tego (IMG:style_emoticons/default/smile.gif) Czyli: 1) pobieram zapytaniem wiadomości sortując je po channel ID. 2) W pętli łączę wiadomości wg kanału (czyli zostaje mi tablica [channel_id] => "Wszystkie wiadomości z kanału" 3) Pobieram użytkowników i kanały w ktorych są zapisani 4) Pętla po 3) i jeżeli następuje zmiana usera, to robię wysyłkę. Pominąłem oczywiście całe formatowanie wiadomości itp (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 11:07 |