Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка данных из бд с помощью функции mail()
 
 автор: clubxaliav   (21.05.2012 в 14:16)   письмо автору
 
 

При покупки товара через корзину нужно по почте отправить все названия товаров которые он купил.

$message = "Тут текст и вывод количества покупок";

Подскажите как сделать чтоб получилось вот так:

$message = "Здрасти Вася, вы купили:

1. помидор 1шт
2. огурец 2 шт
3. сахар 1гк

Спасибо";


Пробывал вот так, не работает:

$message = "Здрасти Вася, вы купили:";
$sql = ...... \\ запрос
while ($row=mysql_fetch_array($result)) {

$message.= "тут вывод покупок";

}

$message.= "Спасибо";

  Ответить  
 
 автор: bishake   (21.05.2012 в 14:22)   письмо автору
 
   для: clubxaliav   (21.05.2012 в 14:16)
 

Что именно не работает? Смотрите ошибки в логах. Покажите, какой у Вас sql-запрос.

P.S. Похоже, что Вася просто обиделся на Вашу грамматику :)

  Ответить  
 
 автор: clubxaliav   (21.05.2012 в 14:31)   письмо автору
 
   для: bishake   (21.05.2012 в 14:22)
 

$subject = "Заказ на сайте site.ru";
            $message = 'Здравствуйте Вася. \nВаш заказ на сайте site.ru оформлен. В ближайшее время с вами свяжутся для подтверждения заказа. \n
            Ваш заказ: № ".$checks." от ".date("Y-m-j H:i:s")."\n

            Наименование: $name_prod\n
            Количество: $kolvo_zak\n
            Цена: $tcena_zak\n

            Адрес: $adres\n
            Примечание: $prim\n
            \nС уважением, администрация \n';
            $from ="FROM: site.ru". "\r\n" . "MIME-Version: 1.0\r\nContent-type: text/plain; charset=windows-1251";
            mail($email, $subject, $message, $from);


Один товар отправиться без проблем, стоит вопрос в том что при заказе двух товаров в бд 2 строки и нужен их вывод. что то в этом роде. Как правильно засунуть такой запрос во внутрь $message

$sql = ("SELECT*FROM table WHERE zakaz = 'номер заказа'");
$result = mysql_query($sql);

while ($row=mysql_fetch_array($result)) {

          echo "  Наименование: $name_prod\n
            Количество: $kolvo_zak\n
            Цена: $tcena_zak\n";

}

  Ответить  
 
 автор: confirm   (21.05.2012 в 14:33)   письмо автору
 
   для: clubxaliav   (21.05.2012 в 14:31)
 

В цикле формируйте почтовое сообщение, а после отправляйте почту.

  Ответить  
 
 автор: clubxaliav   (21.05.2012 в 14:49)   письмо автору
 
   для: confirm   (21.05.2012 в 14:33)
 

Теоритически это понятно, но как этот цикл потом запихнуть в $message = ""; ?

  Ответить  
 
 автор: bishake   (21.05.2012 в 14:54)   письмо автору
 
   для: clubxaliav   (21.05.2012 в 14:49)
 

У Вас же вначале было правильно написано:
<?
while ($row=mysql_fetch_array($result)) { 
    
$message .= "  Наименование: $name_prod\n"
    
$message .= "  Количество: $kolvo_zak\n";
    
$message .= "  Цена: $tcena_zak\n"
}

  Ответить  
 
 автор: clubxaliav   (24.05.2012 в 18:45)   письмо автору
 
   для: bishake   (21.05.2012 в 14:54)
 

Нашел ошибку, да вы оказались правы, было правильно!

  Ответить  
 
 автор: confirm   (21.05.2012 в 14:57)   письмо автору
 
   для: clubxaliav   (21.05.2012 в 14:49)
 


$message = "";
while($row....) $message .= $row['name'].' x '. $row['count'].' шт.'; //и т.п... 

И соответственно, в зависимости от формата почты, подставляете в конце строки либо <br>, либо \r\n.

  Ответить  
 
 автор: clubxaliav   (21.05.2012 в 15:17)   письмо автору
 
   для: confirm   (21.05.2012 в 14:57)
 

Спасибо будем пробовать все варианты

  Ответить  
 
 автор: confirm   (21.05.2012 в 15:18)   письмо автору
 
   для: clubxaliav   (21.05.2012 в 15:17)
 

А их что много? )

  Ответить  
 
 автор: clubxaliav   (27.05.2012 в 09:27)   письмо автору
 
   для: confirm   (21.05.2012 в 15:18)
 

Вроде получилось, оправляет цикл, но с кодировкой и html не разобрался.... может увидете где ошибка!?

$subject = "Заказ на сайте";
            $message = "<html><head><title></title></head><body>Здравствуйте Вася <br>Ваш заказ на сайте оформлен. В ближайшее время с вами свяжутся для подтверждения заказа. <br>";
            $message .= "Ваш заказ: № 123 от 27,05,2012<br>";

            $message .= "<table style=\"background:#689a36;\">
                           <tr>
                             <td style=\"height:32px; color:#ffffff; padding: 4px 10px 4px 10px;\">Наименование</td>
                             <td style=\"height:32px; color:#ffffff; padding: 4px 10px 4px 10px;\">Количество, шт.</td>
                             <td style=\"height:32px; color:#ffffff; padding: 4px 10px 4px 10px;\">Цена, руб.</td>
                           </tr>";


            $ss = ("SELECT*FROM $tables[t_products], $tables[t_zakazs] WHERE $tables[t_products].id_prod = $tables[t_zakazs].prodid_zak AND $tables[t_zakazs].check = '$checks'");
            $rss = mysql_query($ss);
            while ($ri = mysql_fetch_array($rss)) {
            $name_prod = $ri["name_prod"];
            $kolvo_zak = $ri["kolvo_zak"];
            $tcena_zak = $ri["tcena_zak"];

            $message .= "<tr>";
            $message .= "<td style=\"height:32px; padding:0 10px 0 10px; border-left: 1px solid #669933; border-bottom: 1px solid #669933;\" align=\"left\">$name_prod\r\n</td>";
            $message .= "<td style=\"height:32px; padding:0 10px 0 10px; border-left: 1px solid #669933; border-bottom: 1px solid #669933;\" align=\"left\">$kolvo_zak\r\n</td>";
            $message .= "<td style=\"height:32px; padding:0 10px 0 10px; border-left: 1px solid #669933; border-right: 1px solid #669933; border-bottom: 1px solid #669933;\" align=\"center\">$tcena_zak\r\n</td>";
            $message .= "</tr>";
            }

            $message .= "<table>";

            $message .= "Адрес: $adres<br>
            Примечание: $prim<br>
            С уважением, администрация <br></body></html>";
            $from = "FROM: support@site.ru\r\n";
            $from .= "MIME-Version: 1.0\r\n Content-type: text/html; charset=utf-8";
            $from .= "Content-Transfer-Encoding: 8bit\n\n";
            mail($email, $subject, $message, $from);


Приходит все письмо в кодировках и html не работает.... как быть? Заранее благодарю...

  Ответить  
 
 автор: clubxaliav   (27.05.2012 в 10:29)   письмо автору
 
   для: clubxaliav   (27.05.2012 в 09:27)
 

В принципе на яндексе кодировка нормальная, а вот в outlooke 2007 одни иероглифы, может кто знает какую кодировку использовать для outlooka

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования