За последние 24 часа нас посетили 17558 программистов и 1310 роботов. Сейчас ищут 990 программистов ...

вставка в письмо значений из таблицы MySql

Тема в разделе "Работа с почтой", создана пользователем moserg777, 25 сен 2014.

  1. moserg777

    moserg777 Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    4
    Симпатии:
    0
    Доброго времени суток!Требуется помощь!!!
    Смысл в следующем-делаю интернет-магазин, при оформлении заказа клиентом на мою и его почту необходимо отправить письмо с данными по заказу:
    1. Номер заказа
    2.Данные о клиенте
    3.Состав заказа
    Все работает за исключением третьего пункта.Не получается вставить в письмо данные из таблицы MySql
    КОНКРЕТНЕЕ:
    имеется таблица zakaz_table в нее записывается состав заказа:
    1. id_zakaz - номер заказа
    2. name_categories - наименование категории
    3. name_tovar - наименование товара
    4. artikul - артикул товара
    5. autor - производитель
    6. pay_rub - цена
    7. kol-количество
    ПРИ ВЫВОДЕ ИНФОРМАЦИИ В ПИСЬМО НЕОБХОДИМО ОТРАЗИТЬ СОСТАВ ЗАКАЗА, но выводит только первую найденную строку в таблице, остальные не выводит.
    Причем команда - echo выводит все строки(но на экран, что мне не надо), а команда return (из функции)- только первую найденную строку.

    КОД ФУНКЦИИ ДЛЯ ОТБОРА СТРОК ПО ЗАКАЗУ:

    1. function mail_show_zakaz1($id_zakaz)
    2. {//$id_zakaz - входной параметр в функцию - номер заказа в системе
    3. $conn = db_connect();//соединение с БД(через функцию)
    4. //формируем запрос к таблице с составом заказа
    5. $query11 = "SELECT * FROM zakaz_table WHERE id_zakaz = '".$id_zakaz."'";
    6. //присваиваем переменной результат запроса
    7. $result11 = @$conn->query($query11);
    8. //если результат запроса отрицательный - останавливаем функцию
    9. if (!$result11)
    10. {return false;}
    11. elseif ($result11)//ИНАЧЕ ЕСЛИ ЗАПРОС ПРОШЕЛ
    12. {
    13. $result11 = db_result_to_array($result11);//создаем массив
    14. $mass1 = array();//создаем еще один массив для хранения выборки по составу корзины
    15. $i=1;//устанавливаем значение счетчика
    16. foreach ($result11 as $row)//перебираем массив с данными по номеру заказа в таблице zakaz_table
    17. {
    18. $id = $row['id_zakaz']; // номер заказа в системе
    19. $name_categories = $row['name_categories'];//категория товаров
    20. $name_tovar = $row['name_tovar'];//название товара
    21. $artikul = $row['artikul'];//артикул
    22. $autor = $row['autor'];//производитель
    23. $pay_rub = $row['pay_rub'];//стоимость
    24. $kol = $row['kol'];//количество
    25. $summa_rub = $row['summa_rub'];//итоговая сумма за наименование
    26. //выводим результаты в переменную
    27. $zakaz = "
    28. <b>Запись :</b>&nbsp;&nbsp;".$i."<br/>
    29. <b>N заказа :</b>&nbsp;&nbsp;".$id."<br/>
    30. <b>Категория товара :</b>&nbsp;&nbsp;".$name_categories."<br/>
    31. <b>Наименование товара :</b>&nbsp;&nbsp;".$name_tovar."<br/>
    32. <b>Артикул товара :</b>&nbsp;&nbsp;".$artikul."<br/>
    33. <b>производитель :</b>&nbsp;&nbsp;".$autor."<br/>
    34. <b>Цена :</b>&nbsp;&nbsp;".$pay_rub."&nbsp;&nbsp;руб.<br/>
    35. <b>Количество :</b>&nbsp;&nbsp;".$kol."&nbsp;&nbsp;шт.<br/><br/>
    36. <b>Итого за наименование:</b>&nbsp;&nbsp;".$summa_rub."&nbsp;&nbsp;руб.<br/><hr/><br/>
    37. ";
    38. $mass1[] = $zakaz;//добавляем переменную в новый массив
    39. $i++;//увеличиваем счетчик на один после каждого цикла
    40. } //ЗАКРЫВАЕМ ПЕРЕБОР МАССИВА
    41. while (list($key, $val) = each($mass1))//перебираем новый массив с полученными результатами
    42. return $val.'<br/>';//выводим результаты в письмо !!!!ЕСЛИ ПОМЕНЯТЬ return на echo ТО ВСЕ ВЫВОДИТСЯ КАК НАДО-НО НА ЭКРАН!!!А НЕ В ПИСЬМО!!!
    43. }//ЗАКРЫВАЕМ ЕСЛИ ЗАПРОС ПРОШЕЛ
    44. }//ЗАКРЫВАЕМ ФУНКЦИЮ

    КОД ПИСЬМА:

    1. //------- ОПРЕДЕЛЯЕМ ПЕРЕМЕННЫЕ ДЛЯ ОТПРАВКИ ПИСЬМА АДМИНУ --------------------------------------------------///
    2. //определяем переменные сессии КОНТАКТНЫЕ ДАННЫЕ ПОКУПАТЕЛЯ 3. $user_name = cutty($_SESSION['client_name']);//переменная сессии - ИМЯ ПОКУПАТЕЛЯ
    4. $user_email = cutty($_SESSION['client_email']);//переменная сессии - ЕМЕЙЛ ПОКУПАТЕЛЯ
    5. $user_telefon = cutty($_SESSION['client_telefon']);//переменная сессии - ТЕЛЕФОН ПОКУПАТЕЛЯ
    6. $cart = $_SESSION['cart'];//переменная корзины
    7. //определяем переменные сессии АДРЕС ДОСТАВКИ
    8. $client_strana_dostavka = 'Самовывоз';//переменная СТРАНА ДОСТАВКИ
    9. $client_index_dostavka = 'Самовывоз'; //переменная ИНДЕКС ДОСТАВКИ
    10. $client_region_dostavka = 'Самовывоз'; //переменная РЕГИОН ДОСТАВКИ
    11. $client_gorod_dostavka = 'Самовывоз'; //переменная ГОРОД ДОСТАВКИ
    12. $client_strit_dostavka = 'Самовывоз'; //переменная УЛИЦА ДОСТАВКИ
    13. $client_dom_dostavka = 'Самовывоз'; //переменная ДОМ ДОСТАВКИ
    14. $client_kvartira_dostavka = 'Самовывоз'; //переменная КВАРТИРА
    15. $client_readmy_adres_dostavka = 'Самовывоз';
    16. ///----------------------------- ОТПРАВКА СООБЩЕНИЯ НА ЭЛЕКТРОННУЮ ПОЧТУ АДМИНА ------------------------------///
    17. //сoздаем переменную для текущей даты и времени
    18. $var_date = date("Y-m-d H:i:s");
    19. //ФОРМИРУЕМ ЗАГОЛОВКИ ПИСЬМА
    20. $to = $mail_admin;//переменная с адресом электронной почты на который отправляется сообщение
    21. $subject = 'РЕГИСТРАЦИЯ НОВОГО ЗАКАЗА'; //пeременная $subject формирует тему письма
    22. $from = $user_email;//создаем в письме заголовок - от кого письмо
    23. $headers = "From: <".$from.">\r\n";
    24. $headers .= "MIME-Version: 1.0\r\n";//Указываем правильный MIME-тип сообщения
    25. $headers .= "Content-type:text/html; charset=\"windows-1251\" r\n";//задаем кодировку
    26. ///------------------------------- 4.3. формируем сообщение ------------------------------------------------------///
    27. $message =
    28. '<html>
    29. <head>
    30. <title>РЕГИСТРАЦИЯ НОВОГО ЗАКАЗА</title>
    31. </head>
    32. <body>
    33. <table cellpadding="0" cellspacing="0" border="0" width="95%">
    34. <div style="margin-left: 10%; margin-right: 10%; padding: 10px; border: 1px; border: solid; border-color: #3CF;">
    35. <table cellpadding="0" cellspacing="0" border="0" width="100%">
    36. <tr>
    37. <td width="100%" align="left"><p>
    38. <img src="http://'.$_SERVER['SERVER_NAME'].'/images/image_warning/shopping-bag.png" width="50" height="50">
    39. </tr>
    40. <tr>
    41. <td width="100%" align=""><p style="color: green;"><b>У ВАС НОВАЯ РЕГИСТРАЦИЯ ЗАКАЗА :</b></p></td>
    42. </tr>
    43. <tr>
    44. <td width="100%" align=""><p>
    45. <b style="color: green;">НОМЕР ЗАКАЗА :</b>&nbsp;&nbsp;'.$id_zakaz.'<br/><br/>
    46. <b style="color: green;">ПОКУПАТЕЛЬ :</b><hr/><br/>
    47. <b>Статус покупателя :</b>&nbsp;&nbsp;'.$status_user.'<br/>
    48. <b>Имя покупателя :</b>&nbsp;&nbsp;'.$user_name.'<br/>
    49. <b>Адрес email покупателя :</b>&nbsp;&nbsp;'.$user_email.'<br/>
    50. <b>Телефон покупателя :</b>&nbsp;&nbsp;'.$user_telefon.'<br/>
    51. <b>Время регистрации заказа в системе :</b>&nbsp;&nbsp;'.$var_date.'<br/><br/>
    52. <b style="color: green;">ДАННЫЕ ПО ЗАКАЗУ :</b><hr/><br/>
    53. <b>Способ оплаты:</b>&nbsp;&nbsp;'.($_SESSION['client_variant_oplata']).'<br/>
    54. <b>Способ доставки:</b>&nbsp;&nbsp;'.($_SESSION['client_variant_dostavca']).'<br/>
    55. <b style="color: green;" >СОСТАВ ЗАКАЗА :</b><hr/><br/>
    56. '.mail_show_zakaz1($id_zakaz).'<br/><br/>
    57. </p><b style="color: green;">ПОЯСНЕНИЕ К ЗАКАЗУ :</b><hr/><br/>'.$client_readmy_adres_dostavka.'<br/>
    58. </td>
    59. </tr>
    60. </table>
    61. </div>
    62. </table>
    63. </body>
    64. </html>';
    65. $message = mb_convert_encoding($message,"windows-1251","UTF-8");//преобр из кодировки "UTF-8" в кодировку "windows-1251"
    66. $subject = mb_convert_encoding($subject,"windows-1251","UTF-8");//преобр из кодировки "UTF-8" в кодировку "windows-1251"
    67. ///---------------------------- отправляем письмо АДМИНУ --------------------------------------------------///
    68. @mail($to,$subject,$message,$headers);

    ВСЕ РАБОТАЕТ КРОМЕ ТОГО ЧТО СОСТАВ ЗАКАЗА ВЫВОДИТ В ПИСЬМО ТОЛЬКО ПЕРВУЮ НАЙДЕННУЮ СТРОКУ.

    ВЫГЛЯДИТ В ПИСЬМЕ ТАК:

    СОСТАВ ЗАКАЗА :

    Запись : 1
    N заказа : 37
    Категория товара : МЕДИЦИНСКИЕ ИЗДЕЛИЯ С НАПОЛНИТЕЛЕМ ИЗ МИКРОСФЕР ООО АЛЬСАРИЯ
    Наименование товара : ПОДУШКА 40Х50
    Артикул товара : AR111
    производитель : ООО Альсария
    Цена : 5500.00 руб.
    Количество : 1 шт.

    Итого за наименование: 5500.00 руб.

    А НАДО ЧТОБЫ ВЕСЬ СОСТАВ ЗАКАЗА БЫЛ,НАПРИМЕР:
    СОСТАВ ЗАКАЗА :

    Запись : 1
    N заказа : 37
    Категория товара : МЕДИЦИНСКИЕ ИЗДЕЛИЯ С НАПОЛНИТЕЛЕМ ИЗ МИКРОСФЕР ООО АЛЬСАРИЯ
    Наименование товара : ПОДУШКА 40Х50
    Артикул товара : AR111
    производитель : ООО Альсария
    Цена : 5500.00 руб.
    Количество : 1 шт.

    Итого за наименование: 5500.00 руб.
    ________________________________________________

    Запись : 2
    N заказа : 37
    Категория товара : МЕДИЦИНСКИЕ ИЗДЕЛИЯ С НАПОЛНИТЕЛЕМ ИЗ МИКРОСФЕР ООО АЛЬСАРИЯ
    Наименование товара : ПОДУШКА 17Х50
    Артикул товара : AR222
    производитель : ООО Альсария
    Цена : 5000.00 руб.
    Количество : 1 шт.

    Итого за наименование: 5000.00 руб.

    Прошу помощи, если вдруг кто то сталкивался уже с такой проблемой?Заранее благодарен.
     
  2. moserg777

    moserg777 Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    4
    Симпатии:
    0
    ВСЕ РАЗОБРАЛСЯ САМ!
    Если кому нибудь пригодиться такой случай, объясняю как решил вопрос:

    41. while (list($key, $val) = each($mass1))//перебираем новый массив с полученными результатами
    42. {$var .= $val.'<br/>';}//ВОТ ЗДЕСЬ ВСЕ И РЕШАЕТСЯ !
    43. return $var;//выводим результаты

    Всем успехов!