Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: накопить данные в функции и отправить на почту
Форумы портала PHP.SU » » Вопросы новичков » накопить данные в функции и отправить на почту

Страниц (1): [1]
 

1. virtpetr - 28 Октября, 2016 - 12:22:40 - перейти к сообщению
я только начал изучать php подскажите есть функция которая обрабатывает и загружает данные в базу а потом отправляет отчет в функцию которая отправляет сообщение на почту
PHP:
скопировать код в буфер обмена
  1.  
  2. private function UploadProducts ($sheetData) {
  3. /* здесь обработка и все такое */
  4. $this->SendNotifications('Обновление', 'обновил', $name); // отправка в функцию на почту отчета
  5. }
  6. private function SendNotifications ($subj, $str, $prdName) { // функция которая отправляет само сообщение на почту
  7.                
  8.                 $subject = $subj.' товара на сайте';
  9.                 $from = 'mail@mail.ru';
  10.                 $body = ' товар '.$prdName.'.';
  11.                 $to = 'mail@mail.ru';
  12.                
  13.                 $mail_message = new waMailMessage($subject, $body);
  14.                 $mail_message->setFrom($from);
  15.                 $mail_message->setTo($to);
  16.         return $mail_message->send();
  17.         }
  18.  

все работает но отправляет каждое сообщение о загрузке товара
а я хочу чтобы функция отправки накопила например в переменной $body все товары с переносом а потом отправила одно сообщение

подскажите что нужно изучить, я так полагаю php while
и с чем работать никак не могу разобраться, наверно нужно набрать данных в переменную $body в цикле а потом отправить или как это делается подскажите
2. LIME - 29 Октября, 2016 - 04:55:08 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. private function UploadProducts ($sheetData) {
  2. /* здесь обработка и все такое */
  3. $this->dataBank[] = $name;
  4. // SendNotifications вызываем не тут а после UploadProducts, переделав наверное так как ниже
  5. //$this->SendNotifications('Обновление', 'обновил', $name); // отправка в функцию на почту отчета
  6. }
  7. private function SendNotifications ($subj, $str) { // функция которая отправляет само сообщение на почту
  8.                
  9.                 $subject = $subj.' товара на сайте';
  10.                 $from = 'mail@mail.ru';
  11.  
  12.                 $body = '';
  13.                 foreach($this->dataBank as $prdName) {
  14.                      $body .= ' товар '.$prdName.'.' . PHP_EOL;
  15.                 }
  16.  
  17.                 $to = 'mail@mail.ru';
  18.                
  19.                 $mail_message = new waMailMessage($subject, $body);
  20.                 $mail_message->setFrom($from);
  21.                 $mail_message->setTo($to);
  22.         return $mail_message->send();
  23.         }
3. virtpetr - 01 Ноября, 2016 - 12:22:42 - перейти к сообщению
Спасибо большое не ожидал о таком простом решении просто накидать в массив
вам +100500 в карму спасибо что помогли (к сожалению не могу нажать спасибо мало сообщений)
пойду дальше изучать

 

Powered by ExBB FM 1.0 RC1