Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] Pogrupowanie i wydobycie jednej wartości
Forum PHP.pl > Forum > Przedszkole
kaszanka
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
piotrooo89
a pokaż jak wysyłasz tego maila.
kaszanka
  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. ?>
piotrooo89
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.
kaszanka
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.