Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменение значения записи в БД через определенное время
 
 автор: mcdude   (19.03.2014 в 09:34)   письмо автору
 
 

У меня такой вопрос: возможен ли скрипт, который каждые несколько часов будет менять запись в БД? Например, в таблице есть запись "1", проходит время, и она меняется на "2", потом на "3" и т.д. Если это реально, расскажите, пожалуйста, примерную реализацию.

  Ответить  
 
 автор: confirm   (19.03.2014 в 09:37)   письмо автору
 
   для: mcdude   (19.03.2014 в 09:34)
 

Cron. На хосте вам предоставляется через панель управления возможность добавить в него задачу по расписанию.

  Ответить  
 
 автор: Valick   (19.03.2014 в 09:47)   письмо автору
 
   для: mcdude   (19.03.2014 в 09:34)
 

опишите задачу конкретнее, что из себя представляет поле с этими значениями и зачем их менять?
Если это подобие какой-то игры и что-то типа накопления денежных средств в сундуке игрока, то вы двигаетесь в неправильном мнаправлении

  Ответить  
 
 автор: mcdude   (19.03.2014 в 09:53)   письмо автору
 
   для: Valick   (19.03.2014 в 09:47)
 

Да, на самом деле нужно для игры, но не накопление. Есть виртуальный питомец, параметры которого(сытость и т.п.) должны каждые несколько часов убывать. Cron тут не подойдет?

  Ответить  
 
 автор: Valick   (19.03.2014 в 10:05)   письмо автору
 
   для: mcdude   (19.03.2014 в 09:53)
 

Крон тут абсолютно лишний.
Прсто при обращении к БД считываете текущее значение и обновляете его в соответсвии с прошедщим временем для каждого питомца в отдельности, заодно обновленное значение отдаете в браузер вы же уже его сформировали и нет необходимости извлекать его из БД.
Подумайте сми, допустим в БД у вас 10000 игроков, в месяц играют только 100, но крону будет пофиг он каждый час будет обновлять все 10000

  Ответить  
 
 автор: mcdude   (19.03.2014 в 10:26)   письмо автору
 
   для: Valick   (19.03.2014 в 10:05)
 

А как узнать, сколько времени прошло? Надо в БД хранить время последнего обращения и сравнивать с текущей датой, или как-то иначе?

  Ответить  
 
 автор: Valick   (19.03.2014 в 11:02)   письмо автору
 
   для: mcdude   (19.03.2014 в 10:26)
 

да, в БД надо хранить таймштамп последнего изменения строки, все остальное чистая математика
для этого в БД есть тип поля timestamp и специальная команда current_timestamp, но можно и в запросе указывать метку времени
хотя для расчета средствами РНР лучще наверно принудительно в запросе указывать метку, если делать с current_timestamp, то надо извлекать из БД уже готовые значения состояния питомца
в общем, тут нюанс над которым надо подумать

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования