есть цикл
while ( $row = mysql_fetch_assoc($result))
{
$k = $row['server_stoptime'] - time();
$clock = round(($k/60/60)-1);
if ( $k < 86400 )
{
$s1=mysql_query("UPDATE `pg_serverlist` SET `email_status` = '1' WHERE
`server_globalid` = '".$row['server_globalid']."' ");
}
};
Он обновляет записи, удовлетворяющие условию
Затем мне нужно найти e-mail двумя запросами пользователей, записи которых обновились
$result = mysql_query("SELECT `uID` FROM `lm_myserver` WHERE `sID` REGEXP '[[:<:]]".$row['server_globalid']."[[:>:]]'");
while($row = mysql_fetch_assoc($result));
$id=$row['uID'];
$result = mysql_query("SELECT `email` FROM `lm_user` WHERE `id` = ".$id."");
while($row = mysql_fetch_assoc($result));
И разослать им письма
$to = $row['email'] ;
$subject = "Заканчивается раскрутка сервера";
$body ="Для сервера ".$row['server_addr']." услуга 'Раскрутка' будет удалена через ".$clock." часов.\n";
$body .= "C уважением, администрация сайта. \n";
$headers = "Content-type: text/plain; charset=windows-1251\r\n";
$headers .= "From: <".$conf['support_mail'].">\r\n";
mail($to, $subject, $body, $headers);
Как мне все это в цикл загнать?
Спустя 19 минут, 10 секунд (22.03.2012 - 08:50) Visman написал(а):
В запросе, который идет перед
доставай сразу нужные данные, т.е. email и после апдейта сразу шли письмо без новых запросов к базе.
while ( $row = mysql_fetch_assoc($result))
{
$k = $row['server_stoptime'] - time();
$clock = round(($k/60/60)-1);
if ( $k < 86400 )
{
$s1=mysql_query("UPDATE `pg_serverlist` SET `email_status` = '1' WHERE
`server_globalid` = '".$row['server_globalid']."' ");
// тут отсылай письмо
}
};
доставай сразу нужные данные, т.е. email и после апдейта сразу шли письмо без новых запросов к базе.
Спустя 3 минуты, 9 секунд (22.03.2012 - 08:54) kss написал(а):
делал так... приходит только одно письмо, и обновляет одну запись, а должен, пока, две
Спустя 2 минуты, 17 секунд (22.03.2012 - 08:56) kss написал(а):
Вот так делаю
while ( $row = mysql_fetch_assoc($result))
{
$k = $row['server_stoptime'] - time();
$clock = round(($k/60/60)-1);
if ( $k < 86400 )
{
$s1=mysql_query("UPDATE `pg_serverlist` SET `email_status` = '1' WHERE
`server_globalid` = '".$row['server_globalid']."' ");
$result = mysql_query("SELECT `uID` FROM `lm_myserver` WHERE `sID` REGEXP '[[:<:]]".$row['server_globalid']."[[:>:]]'");
while($row = mysql_fetch_assoc($result));
$id=$row['uID'];
$result = mysql_query("SELECT `email` FROM `lm_user` WHERE `id` = ".$id."");
while($row = mysql_fetch_assoc($result));
$to = $row['email'] ;
$subject = "Заканчивается раскрутка сервера";
$body ="Для сервера ".$row['server_addr']." услуга 'Раскрутка' будет удалена через ".$clock." часов.\n";
$body .= "C уважением, администрация сайта. \n";
$headers = "Content-type: text/plain; charset=windows-1251\r\n";
$headers .= "From: <".$conf['support_mail'].">\r\n";
mail($to, $subject, $body, $headers);
}
};
Спустя 4 минуты, 20 секунд (22.03.2012 - 09:00) Visman написал(а):
while($row = mysql_fetch_assoc($result));
Зачем ; ? Должна фигурная скобка открываться и где-то ниже закрываться.
Спустя 21 минута, 32 секунды (22.03.2012 - 09:22) kss написал(а):
да хоть как!
Спустя 1 минута, 57 секунд (22.03.2012 - 09:24) Visman написал(а):
Цитата (kss @ 22.03.2012 - 14:22) |
да хоть как! |
В текущем исполнении у тебя циклы отсутствуют!
Цикл это
while($row = mysql_fetch_assoc($result))
{
// тело цикла, которое выполняется для каждой записи
}
Спустя 1 час, 32 минуты, 4 секунды (22.03.2012 - 10:56) kss написал(а):
while ( $row = mysql_fetch_assoc($q))
{
$k = $row['server_stoptime'] - time();
$clock = round(($k/60/60)-1);
if ( $k < 86400 )
{
$s1=mysql_query("UPDATE `pg_serverlist` SET `email_status` = '1' WHERE
`server_globalid` = '".$row['server_globalid']."' ");
$q2 = mysql_query("SELECT `uID` FROM `lm_myserver` WHERE `sID` REGEXP '[[:<:]]".$row['server_globalid']."[[:>:]]' LIMIT 1");
while($row2 = mysql_fetch_assoc($q2))
$id=$row2['uID'];
$q3 = mysql_query("SELECT `email` FROM `lm_user` WHERE `id` = ".$id." LIMIT 1");
while($row2 = mysql_fetch_assoc($q3))
$to = $row2['email'] ;
$subject = "Заканчивается раскрутка сервера";
$body ="Для сервера ".$row['server_addr']." услуга 'Раскрутка' будет удалена через ".$clock." часов.\n";
$body .= "C уважением, администрация сайта. \n";
$headers = "Content-type: text/plain; charset=windows-1251\r\n";
$headers .= "From: <".$conf['support_mail'].">\r\n";
mail($to, $subject, $body, $headers);
};
};
Работает. Спасибо всем за ответы