|
Pilot
Тех-Альянс
Зарегистрирован: 2007-02-20
Сообщений: 45
|
1) Есть компонент. Он полностью пустой, кроме системных настроек. Этот компонент добавлен в скрытый раздел сайта. Например раздел имеет вид site.ru/cron/ Эта страница дёргается кроном раз в сутки, ночью, в три часа ночи.
2) Пользователь проходит регистрацию. После этого, он имеет права на добавление объектов. После добавления объекта, в базе сохраняется этот объект, и в поле User_ID стоит цифра - id пользователя, добабившего объект. Так же сохраняется и дата последнего редактирования этого объекта в поле LastUpdated.
joxi.ru/BxNNUxjKTJB-QiGa-qU
Код:
Код:<?php
// устанавливаем количество дней, через которое новсть будет выключаться. Дата для отсчёта - дата последнего редактирования, в т.ч. включение или выключение
$proshlo = 30;
// выполняем выключение в базе данных
$nc_core->db->get_var("UPDATE `Message164` SET `Checked`=0 WHERE TO_DAYS(NOW()) - TO_DAYS(LastUpdated) >= $proshlo");
// отправляем письмо тем пользователям, которые не редактировали новость 30 дней с текстом о выключении его объявления
$res = $nc_core->db->get_var("SELECT User_ID FROM `message164` where `Checked`=0");
$mail = $nc_core->db->get_var("SELECT Email FROM `user` where `User_ID`=$res");
if ($res > 0) {
echo " результат $res";
$mailer = new CMIMEMail();
$text = "Текст письма";
$mailer->mailbody( strip_tags($text), $text);
$mailer->send("$mail", "info@site.ru", "info@site.ru", "Предупреждение о выключении новости.", "site");
}
?>
3) Скрипт проходит по всей таблице message164 находит те строки, которые отвечают условиям, т.е. редактировались 30 дней назад и в этом случае выключает эти строки с отправкой письма пользователю, который редактировал новость 30 дней назад.
Код отправляет письмо (выделен красным) не всем найденным пользователям. А только одному.
Прошу помощи!
pilot
|
|
Гость
Гость
|
$res = $nc_core->db->query("SELECT User_ID FROM `message164` where `Checked`=0", ARRAY_N );
foreach ($res as $row) {
$mail = $nc_core->db->get_var("SELECT Email FROM `user` where `User_ID`=$row['User_ID']");
$mailer = new CMIMEMail();
$text = "Текст письма";
$mailer->mailbody( strip_tags($text), $text);
$mailer->send("$mail", "info@site.ru", "info@site.ru", "Предупреждение о выключении новости.", "site");
}
|