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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Отправка "mail()" содержащее цикл.

Сообщения:  [1-6] 

 
 автор: sasha12342   (17.01.2013 в 13:28)   письмо автору
 
   для: sasha12342   (16.01.2013 в 20:48)
 

Все оказалось довольно просто. К переменой "message" добавляем переменную "message" с новым значением.
В цикле:
$message=$message . "<tr>$post</tr>";

  Ответить  
 
 автор: sasha12342   (16.01.2013 в 20:48)   письмо автору
 
   для: sasha12342   (14.01.2013 в 15:32)
 

Похоже это невозможно реализовать. Или возможно? Хотя-бы скажите в каком направлении копать!

  Ответить  
 
 автор: sasha12342   (14.01.2013 в 15:32)   письмо автору
 
   для: cheops   (14.01.2013 в 07:30)
 

А если попробовать сформировать сначала таблицу в теле письма для одного участника, затем для остальных
и
if ($iuzer=="уникальный пользователь")
{формируем тело письма для уникального участника}
else {формируем тело письма для остальных}
дальше для каждого участника в цикле отправляем письма?


Даже если я укажу участника на прямую ($iuzer='colia') то все равно ничего не получается, потому что мне надо вывести в цикле все его записи из таблицы. К примеру:
В цикле, "$post" имеет 4 разных значений (4 разных <tr>$post</tr>) и если я поставлю в цикл функцию "mail" то 'colia' получит 4 письма и в каждом из них, последовательно по одному "<tr>"
А если я поставлю функцию "mail" за цикл то 'colia' получит одно сообщение с одним "<tr>" (последнее значение из цикла "$post")
А занести весь этот код с циклами в переменную "$message" отделяя точкой запросы и текст письма
не получается.

  Ответить  
 
 автор: cheops   (14.01.2013 в 07:30)   письмо автору
 
   для: sasha12342   (14.01.2013 в 00:25)
 

В самом первом запросе добавьте поле GROUP_CONCAT(id) и вы сможете получить все id данной группы.

  Ответить  
 
 автор: Nextia   (14.01.2013 в 03:36)   письмо автору
 
   для: sasha12342   (14.01.2013 в 00:25)
 

А если попробовать сформировать сначала таблицу в теле письма для одного участника, затем для остальных
и
if ($iuzer=="уникальный пользователь")
{формируем тело письма для уникального участника}
else {формируем тело письма для остальных}
дальше для каждого участника в цикле отправляем письма?

  Ответить  
 
 автор: sasha12342   (14.01.2013 в 00:25)   письмо автору
 
 

Помогите разобраться.
Есть таблица в БД "user", в ней 7 записей: 4 с одинаковым "email" и 3 с разными.
Письмо отправляю в виде таблицы.
Итого надо отправить 4 письма всем участникам, при этом 3 из них должны получить письмо с одной таблицой и с одним полем, а один из них, одну таблицу с четырьмя полями.
Вот как я это делаю:
Разбиваю на группы участников
$sql = mysql_query("SELECT log, COUNT(*) FROM user GROUP BY log", $conn);
while($row = mysql_fetch_array($sql)){
$iuzer = $row['log'];

Создаю таблицу и первый "<tr>" одинаковый для всех:
$echo1="<table align='center'>
<tr align='center'>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>";
Потом выбираю значение поля "id" принадлежащим участникам:
$sql2 = mysql_query("SELECT id,mail FROM user WHERE login = '$iuzer'", $conn); 
while($row2 = mysql_fetch_array($sql2)){
$idrezult = $row2['idbliudo'];
$mail = $row2['mail'];

Из второй таблицы вытаскиваю некоторые данные для отправки участникам (каждому свои):
$sql3 = mysql_query("SELECT x1,x2,x2 FROM tob_danie WHERE id = '$idrezult'", $conn);
 while($row3 = mysql_fetch_array($sql3)) 
 {
$x1 = $row3["x1"];
$x2= $row3["x2"];
$x3= $row3["x3"];

И наконец, вытаскиваю последние данные из таблицы "user" по значению "$x1":
$sql4 = mysql_query("SELECT y1,y2,y3 FROM user WHERE pole2 = '$x1'", $conn);
 while($row4 = mysql_fetch_array($sql4)) 
 {
$y1= $row4["y1"];
$y1= $row4["y1"];
$y1= $row4["y1"];

Вывожу тело таблицы, для каждого получается разное число строк (три таблицы с одним полем и одна с четырьмя):
$echo2="<tr align='center'>
<td>$1</td>
<td>$2</td>
<td>$3</td>
<td>$4</td>
</tr>";
Закриваю цыклы:
}
}
}

Закрываю таблицу и ставлю еще один "<tr>" с логином участника:
$echo3="<tr align='center'>
<td colspan='4'>$iuzer</td>
</tr>
</table>";
Закрываю первый цикл "}"
Так вот, если я ставлю функцию "mail":
 $to = $mail;
 $subject = $iuzer;
 $message = $echo1.$echo2.$echo3;
 $headers  = "Content-Type: text/html; charset=utf-8" . "\r\n" . 'From: info@sait.ru'; 
mail($to, $subject, $message, $headers);

после "</table>" то пользователи получают таблицу только с одной строкой, тот который должен получить 4 строки получает одну со значениями последней, то есть в переменную "$echo2" не заноситься весь цикл. Но функцию "mail" я не могу занести в цикл, по понятным причинам.
Как решить эту задачу?
За ранее спасибо!

  Ответить  

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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