Доброго времени суток написал скрипт по обновлению значений в базе через 5 дней: Код (Text): <? include("config.php"); $userstable = "ads"; $db = @mysql_connect("$host", "$login_mysql", "$password_mysql"); if (!$db) exit("<p>----</p>"); if (!@mysql_select_db($baza_name,$db)) exit("<p>----</p>"); $query = "SELECT * FROM $userstable"; $res = mysql_query($query) or die(mysql_error()); $number = mysql_num_rows($res); ?> <td width="13%" valign="top" > <? while ($row=mysql_fetch_array($res)) { $id = $row['id'];; $d1 = date(z); $d2 = $row['dateend'];; $query2 = "UPDATE $userstable SET `pablic`= '0' WHERE `id`= '$id'"; $res2 = mysql_query($query2) or die(mysql_error()); if($d1 == d2) $res2; else echo "--------"; } ?> По идеи работает так:выводится строчка и если значение dateend = сегодняшней дате(всё в днях) тогда выполнется запрос на обновление этой строки, дальше цикл повторяется... Но при выполнение скрипт обновляет абсалютно всё...где я ошибся?
Ну.. это по идеи если переменая д1 = переменой д2 тогда выолняется переменая рес2... а цикл проверяет каждую строчку...
переменая res2 выполняет запрос к мускулу с учотом того что id = $id, а переменная id береца из массива для определной строки(т.е по идеи в массиве 1 значение)
мне надо чтобы сравнивались 2 даты, одна из таблицы(колонка dateend) вторая data(z) и если они равны то для это строки выполняется апдейт со сменой значение колонки pablic на 0
PHP: <?php include('config.php'); @mysql_connect($host, $login_mysql, $password_mysql) or die( mysql_error()); @mysql_select_db($baza_name) or die( mysql_error()); @mysql_query('UPDATE `ads` SET `pablic` = 0 WHERE `dateend` = "' .date(z) .'"') or die( mysql_error()); ?>
Что именно не работает. Что ты хотел, я то и сделал. Скорее ты в ТЗ что-то напутал. Сейчас изменил, убрал линк, не знаю - поможет ли...
Я знать хочу, зачем ты делал подавление ошибок, но при этом все же есть PHP: or die( mysql_error()); ?
Ты мой вопрос хоть читал? В общем, не важно. Оно тут просто не нужно. @ можно убрать у всех трех строк. И вообще лучше не подавлять ошибки таким образом. Здесь, кажется, это где-то обсуждалось.