Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Cotygodniowa wysyłka ofert
zelu
post
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
- email

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Wykrywacz
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Thek ale o jakim iloczynie kartezjańskim ty mówisz?? Wybierasz dane układając sobie je w order by i tak ułożone po prostu przekazujesz. Nie interesuje cię ile tam tych wiadomości on ma i na ilu kanałach.

zelu, dokładnie taką jaką masz. struktura słownik, operacyjna, magazyn jest najlepsza strukturą moim zdaniem.

Bo tak jak staram wam się pokazać można z niej wyciągać wszystko jednym prostym zapytaniem.

Panowie przeczytajcie proszę kolejne moje posty (dla tego thek lepiej jest napisać kolejną wiadomość niż swoją edytować). (IMG:style_emoticons/default/winksmiley.jpg)

Ta struktura jest dobra i wyciąganie z niej inaczej niż przez (wsadzam po raz 3;P):

  1.  
  2. SELECT u.email,c.name,m.* FROM user u,channel c, message m, channel_user cu WHERE cu.usr_id=u.id AND cu.channel_id=m.channel_id AND cu.channel_id=c.id
  3.  
  4. ORDER BY c.id,u.id


Jeżeli potrzebujesz bardziej to sortować to po prostu dodajesz do order by

No bawienie się w układanie tablicy to jest jak używanie malucha do orania pola. Po co tworzyć tablice w php, skoro można zrobić to dopisaniem nazwy pole w order by?(IMG:style_emoticons/default/questionmark.gif)


Ten post edytował Wykrywacz 23.04.2010, 09:37:54
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: 5.10.2025 - 21:04