Нужно обновить в базе информацию, если с момента изменения прошло больше 3-х суток. Поле last_edit
содержит время в формате UNIX. Делаю так:
$last_edit = 259200; // 3 суток
$this_time = time() - $last_edit; // сколько прошло
$db->query( "UPDATE tablename set status = '0' WHERE last_edit >= ({$this_time} - last_edit) AND revision = '1'" );
В результате изменяются данные постоянно.
Логично
last_edit >= ({$this_time} - last_edit)
2 * last_edit >= $this_time
любая дата обновления, умноженная на два, будет больше текущей даты.
Должно быть
UPDATE tablename set status = 0 WHERE last_edit <= {$this_time} AND revision = 1
А еще лучше убрать переменную $this_time
вообще
UPDATE tablename set status = 0 WHERE last_edit <= NOW() - 3600 * 24 * 3 AND revision = 1
P.S. И не нужно в запросе числа обрамлять в кавычки
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Выводит запись с id = 1, а должно с id = 2Причем обычным запросом:
Допустим есть таблица users в которой 40 записей
есть такие запросыЕсли первый,второй,третий я понял, то что делает четвертый? И можно ли его переписать без использования временной таблицы