каждые 24 часа - это сутки.
значит тебе нужно ориентироваться не на время, а на дату. и вообще такое решается по разному (обновление при входе либо через крон). попытаюсь алгоритм "родить":
1. создаешь столбец в субд с именем к примеру bonus c типом varchar (для фиксации ежедневного бонуса. к этой задаче можно применить типы varchar, date или текст) и access тип int (для подтверждения, что юзверь получил ежедневный бонус)
2. обязательно делаешь первую запись входа пользователя (создаешь запрос
INSERT INTO `пользователи` (тут что то в субд) VALUES (тут данные для субд, в том числе bonus и access)
значение пусть будет таким: bonus = '".Date("dmY")."' и access = 0
3. начисление бонуса:
Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
$mq = mysqli_query($link, "SELECT bonus, access FROM `пользователи` WHERE id='".тут айдишник юзверя ."'"); if(!$mq) { } //проверяем: является ли бонус ежедневным и получал ли ежедневный бонус юзверь // если юзверь не получил бонус, то игнорируем обновление бонуса if($mfa['bonus']!=Date("dmY") AND $mfa['access']==1) { //здесь обновляем bonus ( время ) и access ( действие ) через запрос субд mysqli_query($link, "UPDATE `пользователи` SET bonus = '".Date("dmY")."', access=0 WHERE id='".айдишник юзверя ."'"); }
4. создаешь кнопку, иконку с этим самым бонусом с динамической ссылкой или аякс запросом на выполнение апа бонуса.
код пыха такой:
что касается крон, то там просто и в тоже время сложно (в каком то смысле), так как зависит от структуры субд и от самого приложения и статистических данных (а именно посещаемость, активность и прочая лабуда).
в связи с этим при входе юзверя в приложение более менее оптимально с точки зрения выполнения задачи.(Отредактировано автором: 08 Декабря, 2016 - 02:50:19)
|