Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze sklepem
Forum PHP.pl > Forum > PHP
ryku123
Witam, jestem tutaj nowy i dopiero się uczę więc proszę o wyrozumiałość.

Mam problem z poniższym kodem, to formularz zamówień w sklepie internetowym, jak zrobić aby na wskazany adres e-mail wysyłał treść zamówienia? Z góry dziękuję smile.gif

  1. <?php
  2. $polaczenie = new mysqli(LOCAL, USERNAME, PASSWD, DBNAME);
  3. $polaczenie -> query("SET NAMES utf8");
  4. $sesja = session_id();
  5. $pobierz = $polaczenie -> query("SELECT * FROM kosz WHERE sesja = '$sesja'");
  6. if($pobierz->num_rows > 0) {
  7. ?>
  8. <div class="supp-menu">
  9. <div class="accordionButton"><img src="gfx/list.png" class="list" border="0" /><span>Twoje zamówienie</span></div>
  10. <div class="accordionContent contentOn">
  11. <ul class="koszyk">
  12. <?php
  13. $lacznie = 0;
  14. while (($dane = $pobierz -> fetch_assoc()) !== null) {
  15. $calosc = $dane['cena']*$dane['ilosc'];
  16. ?>
  17. <li><?=$dane['produkt']?>, <?=$dane['ilosc']?> szt. (<?=$calosc?> EUR)</li>
  18. <?php
  19. $lacznie = $lacznie + $calosc;
  20. }
  21. ?>
  22. </ul>
  23. <p><strong>Łącznie: <?=$lacznie?> EUR</strong></p>
  24. </div>
  25. </div>
  26. <?php
  27. }
  28. ?>
szmerak
poczytaj o funkcj mail()
mail(adresat, temat, treść, nadawca);
ryku123
Tak, wiem ale jak napisać, aby ta funkcja mail generowała treść wiadomości z bazy danych umieszcza ("SELECT * FROM kosz WHERE sesja = '$sesja'" questionmark.gif

szmerak
Ty nie masz wsadzać zapytania "SELECT * FROM kosz WHERE sesja = '$sesja'" do argumentu...
tylko musisz pobrać najpierw te dane następnie umieścić je w zmiennej i dopiero dać jako argument.

Pobieranie danych już masz z głowy... Ponieważ ta pętla to robi
while (($dane = $pobierz -> fetch_assoc()) !== null) {

i w tym momencie tablica $dane zawiera rekordy z bazy... Odwołujesz się do nich przez $dane[nazwa_kolumny]
Pętla to pętla... Najprawdopodobniej zwróci ci więcej niż 1 wiersz tak więc musisz użyć sklejacza....

$zmienna_zawierajaca_informacje .= i tutaj doklejasz ciąg np. $dane[produkt].$dane[ilosc]... ... Zwróć uwagę że jest tam kropka "." przed znakiem = ... Dokleja on na końcu stringu, inny string
następnie wysyłasz tą zmienna powyżej $zmienna_zawierajaca_informacje ale dopiero wtedy jak już opuści pętle czyli na chłopski rozum, na samym dole.

Pozdrawiam
Mayka
  1. function mailsend($adres_maila,$toCoDostajeszZSQLa){
  2. $naglowki = "Reply-to: adres@doopdowiedz.pl <Reply-to: adres@doopdowiedz.pl>".PHP_EOL;
  3. $naglowki .= "From: adres@serwera.pl <adres@serwera.pl>".PHP_EOL;
  4. $naglowki .= "MIME-Version: 1.0".PHP_EOL;
  5. $naglowki .= "Content-type: text/html; charset=iso-8859-2".PHP_EOL;
  6.  
  7. $wiadomosc = 'Tu wstawiasz co ma być w wiadomości i to co dostałeś z mysql, z tablicy fetch_assoc()) ';
  8.  
  9.  
  10. if(mail($adres_maila, 'temat_wiadmomosci', $wiadomosc, $naglowki))
  11. {
  12. echo 'Wiadomość została wysłana';
  13. }}


i wywołujesz tą funkcje z adresem pod ktory ma wysłać i z tym co wyciagasz z tablicy
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.