Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] Pogrupowanie i wydobycie jednej wartości
kaszanka
post 11.03.2009, 15:32:58
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


Hi,

Mam jedną tabelkę "zawartosc":

Cytat
id | email | produkt | nazwa | waznosc
1 | aga@email.pl | biurowe | zeszyt | 2009-03-31
2 | aga@email.pl | biurowe | ksiazka | 2009-04-18
3 | aga@em.pl | biurowe | olowek | 2009-03-14
...
145 | aga@email.pl | biurowe | linijka | 2009-04-10


Chcę zrobić tak aby skrypt php sprawdzal czy ważność danej "nazwy" z bazy danych ma poniżej 50 dni i wysyłał maila na adres z "email" lecz nie osobno dla każdego wiersza tabeli lecz wszystkie naraz danego emaila coś takiego
aga@email.pl = Lista wygasajaca:
- zeszyt, ksiazka

Zrobiłem coś takiego:
  1. <?php
  2. $data_aktualna = date('Y-m-d'); $kiedy_50_dni = date('Y-m-d', strtotime('+50 days', strtotime(''.$data_aktualna.''))); # jaka data będzie za 50 dni
  3. $result=mysql_db_query("panel","SELECT * FROM zawartosc WHERE  waznosc <= '$kiedy_50_dni%'  ORDER by 'id'");
  4. while ($row=mysql_fetch_array($result)) {
  5. ?>

i to się zatrzymałem bo nie wiem jak zrobić by skrypt wysyłał tylko jednego maila z cała listą warunku ważności poniżej 50 dni danego emaila.
Póki co mam tak, że każdą nazwę z tabeli wysyła osobno czyli email dostaje nawet jednocześnie po kilka wiadomości, a teraz chce by dostawał tylko jedną z całą listą jego nazw.

Z góry dziekuje za wskazówki

Ten post edytował kaszanka 11.03.2009, 15:33:34
Go to the top of the page
+Quote Post
piotrooo89
post 11.03.2009, 15:41:29
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a pokaż jak wysyłasz tego maila.


--------------------
Go to the top of the page
+Quote Post
kaszanka
post 11.03.2009, 15:51:43
Post #3





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


  1. <?php
  2. $result=mysql_db_query("panel","SELECT * FROM zawartosc WHERE  waznosc <= '$kiedy_50_dni%'  ORDER by 'id'");
  3. while ($row=mysql_fetch_array($result)) {
  4. mail("$row[email]","Ważność dobiega końca", "witaj $row[email]. Twój produkt $row[nazwa] wygasa dnia $row[waznosc] prosimy...");
  5. }
  6. ?>


Ten post edytował kaszanka 11.03.2009, 15:53:45
Go to the top of the page
+Quote Post
piotrooo89
post 11.03.2009, 15:54:03
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




mail poza pętlą. ja bym sobie stworzył tablice i do tablicy powpisywał wszystkie nazwy, później już tylko odczyt z tablicy wstawienie do maila i wysyłka.


--------------------
Go to the top of the page
+Quote Post
kaszanka
post 11.03.2009, 19:16:23
Post #5





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


Można prosić o przykład? Sęk w tym, że chciałbym by to działało na jednej tablicy, nie wiem, może jakieś grupowanie czy coś...

tylko hmm, jak dam maila za pętle to jak wylistuje do jednej wiadomości wszystkie nazwy ważności z tabeli poniżej 50 dni ?

Na prawdę nie mam już pomysłu jak to rozwiązać.
Zrobiłem jak @piotrooo89 mówił, czyli wysyłkę maila wywaliłem za pętlę to wysyła tylko pierwszy rekord a powinno kilkanaście.

Kombinuje zapytania z "DISTINCT email" ale nic to nie pomaga... sad.gif

Ten post edytował kaszanka 11.03.2009, 15:59:53
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 26.04.2024 - 11:44