Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 311
1

Изменение значения в БД через определенное время.

20.12.2011, 12:20. Просмотров 1897. Ответов 5
Метки нет (Все метки)

Добрый день друзья!
Не совсем уверен в правильности выбора раздела, но опишу задачу которая передо мною стоит:

Имеется база данных, заполняется посетилями сайта. Нужно сделать так, чтобы на странице сайта, на которой выводится информация, через какой-то период (например 10 дней) информация выводиться перестала.

Что-то подобное используется на досках объявлений, т.е. через 7 дней после того, как человек подал объявление на сайт, ему приходит сообщение с просьбой продлить объявление, а само оно переносится в "Архив". Затем, зайдя в личный кабинет пользователь нажимает "продлить" и объявление снова начинает показываться посетителям.

Я вижу с чего можно начать: нужно в таблице с информацией в базе данных добавить столбец, например "status" и присваивать ему значение по умолчанию, например "1". На странице сайта сделать вовод инфы из таблицы, всех строк, у которых "status"=1.
А вот как сделать чтобы после определенного периода "status" автоматически менялся бы на , например "0"?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 12:20
Ответы с готовыми решениями:

Изменение значения в БД через определенное время..
Что т не могу разобраться! вопрос такой. Когда пользователь авторизации через 15 минут записалось...

Выборка по дате через определенное время
Всем привет. Никак не могу справится с решением. Есть запись у которой datetime 2017-12-06...

Парсинг сайта через определенное время
Каким образом реализовать парсинг страницы через, допустим полчаса?

Срабатывание скрипта через определенное время
Подскажите как можно сделать так что бы определенный скрипт срабатывал после определенного времени...

5
__PION__
959 / 800 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
20.12.2011, 14:32 2
// обновить объявления через 7 дней
SQL
1
2
3
UPDATE имя_таблицы  
      SET `status` = 0 
      WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(поле_с_датой_подачи_объявл) > 86400 * 7
1
KoIIIeY
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
20.12.2011, 15:06 3
И повесить на крон как демон. Туда же, в этот демон, положить рассылку email'ов.
А сам крон на проверку два раза в день.
1
Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 311
20.12.2011, 18:22  [ТС] 4
Love_and_Peace, Спасибо дружище, а можно поподробнее о:
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(поле_с_датой_подачи_объявл) > 86400 * 7
Как это расшифровать? Если честно, то первый раз "такое" вижу...



KoIIIeY, и тебе спасибо огромное за совет, но совершенно не знаю что такое "демон", как "положить рассылку email'ов" и что за "крон" и как его автоматически проверять два раза в день?

Я понимаю что много вопросов, но помогите хоть разобраться что это и с чего начать изучать, может есть какие-то статьи на эту тему, примеры кода и т.п.?
0
__PION__
959 / 800 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
20.12.2011, 18:49 5
Цитата Сообщение от Lion_astana Посмотреть сообщение
Как это расшифровать? Если честно, то первый раз "такое" вижу...
ну тут сказано, что надо обновить поля status (приравнять нулю в твоем случае), у которых текущее время (UNIX_TIMESTAMP() - время с 1970 года в секундах, время UNIX'a) отнять время подачи объявления (так же переводим в секунды - UNIX_TIMESTAMP(поле_с_датой_подачи_объявл)), и если это все больше 7 дней (86400 секунд в сутках), то происходит обновление.

Цитата Сообщение от Lion_astana Посмотреть сообщение
не знаю что такое "демон", как "положить рассылку email'ов" и что за "крон"
cron это спец штука для автоматизации процессов (я сам в этом ни х смыслю, может KoIIIeY лучше знает, знаю то, что он как бы позволяет автоматически отслеживать время и выполнять какие-либо действия в заданное (установленное) время), а демон тоже к крону относится.

Добавлено через 1 минуту
хотя тут cron и не нужен, просто обращаешься к БД с кодом обновления каждый раз при обращении к сайту и все, РНР увидя, что требуется обновление, такое и сделает
0
Lion_astana
16 / 16 / 8
Регистрация: 15.03.2010
Сообщений: 311
20.12.2011, 20:43  [ТС] 6
Love_and_Peace, спасибо, попробую проработать твой совет.
Тему не закрываю, если у кого еще появятся мысли, то буду очень признателен.
0
20.12.2011, 20:43
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2011, 20:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление определенных записей через определенное время
Доброго времени суток! Помогите мне с одним вопросом. Есть БД с таблицей users, в этому таблице...

Изменение значения через определенное время
Есть таблица юзеров в mysql. Указаны даты регистрации. Ровно через три дня после регистрации...

Изменение значения в БД через определенное время
Доброго времени суток. Нужна ваша помощь. Вот в чем проблема: Имеется БД, в ней есть таблица users,...

Автоматическое изменение значения в поле спустя определенное время
Приветствую! У меня вот такой вот вопрос: как автоматически изменить значение в поле таблицы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.