Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [mysql] wyswietlanie danych
Forum PHP.pl > Forum > Przedszkole
pkania
witajcie, mam cos takiego

  1. <?
  2. $email = addslashes($email);
  3. include ("./setup.php");
  4. $zapytanie = "select * from `moj_mail` WHERE
  5. email like "%$email%"
  6. ORDER BY `id` DESC ";
  7.  
  8. $wynik = mysql_query($zapytanie);
  9. $ile = mysql_num_rows($wynik); 
  10. for($i=0; $i<$ile; $i++) {
  11. $wiersz = mysql_fetch_array($wynik);
  12.  
  13.  
  14. <a href=mailto:";echo stripslashes($wiersz["email"]),">
  15. <span class="style7">kliknij aby wysłac mail</a></span>";
  16.  }
  17. ?>


wszystko dziala i wyrzuca mi wtedy: (w bazie mam 5 wpisów)
kliknij aby wysłac mail
kliknij aby wysłac mail
kliknij aby wysłac mail ....itd, po kliknieciu na kazdy (kazdy jest oddzielnym mailem) mozna wyslac na ten adres maila

nie bardzo wiem jak to zmodyfikowac aby wyrzucalo mi to tak:
kliknij aby wysłac mail - i pod tym linkiem wszystkie te adresy z bazy
cos takiego mailto:mail1;mail2;mail;3..... itd wszystkie wpisy z bazy
lszota
w miejsce:
kliknij aby wysłac mail
wpisz:
.stripslashes($wiersz["email"]).
To załatwi sprawę

Powodzenia smile.gif
pkania
nie o to chodzi! jeśli wstawie ta formule to zmienia się tylko wyświetlany napis natomiast problem moj zostaje,
chodzi o to, zeby pod tym jednym linkowanym tekstem (i tu niewazne czy bedzie Kliknij aby wyslac mail czy "echo stripslashes($wiersz["email"])" byly te wszystkie maile z bazy

w tej chwili dostaje takii wynik:
mail1 (tu jest link: mailto:mail1@mail.pl)
mail2 (tu jest link: mailto:mail2@mail.pl)
mail3 (tu jest link: mailto:mail3@mail.pl)

a potrzebuje taki wynik:
mail (i tu link: mailto:mail1@mail.pl;mail2@mail.pl;mail3@mail.pl)
lszota
Czyli chciałbyś jednym kliknięciem wysłać maila do wszystkich użytkowników zapisanych w bazie?
Jeżeli tak, to są dwa sposoby:
1) szybszy - przy użyciu MySQL
użyj instrukcji GROUP_CONCAT, opis znajdziesz w manualu MySQL
musisz tylko pamiętać o podaniu separatora, bo domyślnym jest przecinek a potrzebujesz średnik.
Wtedy wynikowy string do wyświetlenia na ekranie otrzymujesz w jednym wierszu wynikowym.
2) wolniejszy, ale bez angażowania MySQL:
zdefiniuj zmienną, np $e_maile i w pętli doklajesz do niej kolejne adresy e-mail
np tak:
  1. <?php
  2. $e_maile = '';
  3. while ($wiersz = mysql_fetch_array($wynik))
  4. {
  5. if ($e_maile != '')
  6. $e_maile .= ';';
  7. $e_maile .= $wiersz['email'];
  8. }
  9. echo "<a href='mailto:$e_maile'>kliknij aby wysłać maila do wszystkich</a>";
  10. ?>

Nie testowałem tego, ale powinno działać.
Zakładam również, że po "mailto:" można podawać listę maili rozdzieloną średnikami. Nigdy tego nie robiłem wcześniej. Nie miałem takiej potrzeby.
Mam nadzieję, że to jest to o co Ci chodziło smile.gif

pozdrawiam
pkania
tak dziala dzieki smile.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.