Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wysyłanie maila do danych osób
Forum PHP.pl > Forum > Przedszkole
kuba_pilach
Witajcie!
A więc dam kawałek kody, by nie było:
  1. $zapytanieogrupe = mysql_query("select team from uzytkownik where login='$session'")
  2. $zog = mysql_fetch_assoc($zapytanieogrupe);
  3. if ($zog>0) {
  4. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'")
  5. $zs = mysql_num_rows($zapytanieoszefow);
  6. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  7. $tab = $zos['email'];
  8. }
  9. $tablica = implode("; ",$tab);
  10. $subject = "czyli tytuł maila";
  11. $headers = "Return-Path: twoj@email.com\r\n";
  12. $headers .= "MIME-Version: 1.0 \r\n";
  13. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  14. $headers .= "From: twoj@email.com\r\n";
  15. $headers .= "Reply-To: twoj@email.com\r\n";
  16. $headers .= "X-Priority: 1\r\n";
  17. $headers .= "X-MSMail-Priority: High\r\n";
  18. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  19. $msg .= "Dalszy tekst<br><br>";
  20. mail($tablica, $subject, $msg, $headers);
  21. }

Na początku są przykładowe dane... A więc jak pewnie już wiecie robię sobie internetowy dzienniczek dla nauki...
I mam grupy ręcznie robione...
I za każdym razem jak się poprawi ocenę, strona ma wysyłać maila do Adminów grupy do której należy użytkownik...
I zapętla mi się strona :/
Niech ktoś poprawi by działało...
Dzięki z góry ;]
CuteOne
  1. <?php
  2.  
  3. $zapytanieogrupe = mysql_query("select team from uzytkownik where login='$session'") or die(mysql_error());
  4. $zog = mysql_fetch_assoc($zapytanieogrupe);
  5.  
  6. if(mysql_num_rows($zapytanieogrupe)) {
  7.  
  8. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'") or die(mysql_error());
  9.  
  10. if(mysql_num_rows($zapytanieoszefow) > 1) {
  11.  
  12. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  13.  
  14. $tablica = implode("; ",$zos['email']);
  15. $subject = "czyli tytuł maila";
  16. $headers = "Return-Path: twoj@email.com\r\n";
  17. $headers .= "MIME-Version: 1.0 \r\n";
  18. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  19. $headers .= "From: twoj@email.com\r\n";
  20. $headers .= "Reply-To: twoj@email.com\r\n";
  21. $headers .= "X-Priority: 1\r\n";
  22. $headers .= "X-MSMail-Priority: High\r\n";
  23. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  24. $msg .= "Dalszy tekst<br><br>";
  25. mail($tablica, $subject, $msg, $headers);
  26. }
  27. }
  28. }
kuba_pilach
Dzięki, że się zainteresowałeś... wyskakuje mi następujący błąd:
Kod
Warning: implode() [function.implode]: Invalid arguments passed in /home/vhost/home/pilach-admin/pilachowski.pl/home/kuba/public_html/dzienniczek/pokazywanieprzedmiotu.php on line 145

Warning: implode() [function.implode]: Invalid arguments passed in /home/vhost/home/pilach-admin/pilachowski.pl/home/kuba/public_html/dzienniczek/pokazywanieprzedmiotu.php on line 145

Warning: implode() [function.implode]: Invalid arguments passed in /home/vhost/home/pilach-admin/pilachowski.pl/home/kuba/public_html/dzienniczek/pokazywanieprzedmiotu.php on line 145

Wie ktoś o co chodzi...?
desperat666
może klamra z while nieco wczesniej zamknięta powinna być na przykład przed funkcją mail()?

  1. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  2. $tablica = implode("; ",$zos['email']);
  3. }
  4.  
  5. $subject = "czyli tytuł maila";
  6. $headers = "Return-Path: twoj@email.com\r\n";
  7. $headers .= "MIME-Version: 1.0 \r\n";
  8. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  9. $headers .= "From: twoj@email.com\r\n";
  10. $headers .= "Reply-To: twoj@email.com\r\n";
  11. $headers .= "X-Priority: 1\r\n";
  12. $headers .= "X-MSMail-Priority: High\r\n";
  13. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  14. $msg .= "Dalszy tekst<br><br>";
  15. mail($tablica, $subject, $msg, $headers);
  16.  


Poza tym przeczytałem w manualu, że implode() używa się do łączenia stringów z tablicy, w jeden string, oddzielony jakimś wybranym stringiem
a ty chcesz wartość w tablicy która jest stringiem ($zos['email']) wstawić do funkcji która chce tablice stringów, może zadziała to tak:

  1. $tmp = Array();
  2. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  3. array_push($tmp, $zos['email']);
  4. }
  5. $tablica = implode("; ",$tmp);
  6.  


i nie wiem czy można oddzielać adresatów średnikami, bo to trzeba przeczytać RFC2822 http://www.faqs.org/rfcs/rfc2822.html
spróbój na przykład przecinkiem bo tak napisali w manualu jako pierwszy przykład
CuteOne
Fakt zamiast implode powinien być explode. Po drugie ile adresów trzymasz w $zos['email']? Po trzecie ile rekordów wyświetli
  1. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'") or die(mysql_error());

? Innymi słowy ilu Adminów, może należeć do danej grupy?

  1. <?php
  2.  
  3. $zapytanieogrupe = mysql_query("select team from uzytkownik where login='$session'") or die(mysql_error());
  4. $zog = mysql_fetch_assoc($zapytanieogrupe);
  5.  
  6. if(mysql_num_rows($zapytanieogrupe)) {
  7.  
  8. $zapytanieoszefow = mysql_query("select * from uzytkownik where team='".$zog['team']."' and team_rank='Admin'") or die(mysql_error());
  9.  
  10. if(mysql_num_rows($zapytanieoszefow) >= 1) {
  11.  
  12. while($zos = mysql_fetch_assoc($zapytanieoszefow)) {
  13.  
  14. $tablica = explode(";",$zos['email']);
  15. $subject = "czyli tytuł maila";
  16. $headers = "Return-Path: twoj@email.com\r\n";
  17. $headers .= "MIME-Version: 1.0 \r\n";
  18. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  19. $headers .= "From: twoj@email.com\r\n";
  20. $headers .= "Reply-To: twoj@email.com\r\n";
  21. $headers .= "X-Priority: 1\r\n";
  22. $headers .= "X-MSMail-Priority: High\r\n";
  23. $msg = "E-mail wyslany z witryny www.twoja-strona.pl<br><br><br>\n";
  24. $msg .= "Dalszy tekst<br><br>";
  25.  
  26. foreach($tablica as $value) {
  27.  
  28. mail(trim($value), $subject, $msg, $headers);
  29. }
  30. }
  31. }
  32. }
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.