Ежедневные бонусы пользователям
Ежедневные бонусы пользователям
Как правильно реализовать на PHP+mySQL, чтобы юзер (который уже есть в базе) получал при ежедневном заходе в приложение бонусные монеты?
Я знаю как их обновить, но как чтобы только один раз в сутки?
Я знаю как их обновить, но как чтобы только один раз в сутки?
Re: Ежедневные бонусы пользователям
в базе завести еще одно поле "время получения подарка"
если разница между текущим временем и временем получения в пределах суток, значит подарок уже получен
если разница между текущим временем и временем получения в пределах суток, значит подарок уже получен
Re: Ежедневные бонусы пользователям
Спасибо. Пока тяжело представляю, но попробую.
Re: Ежедневные бонусы пользователям
В общем-то сделал. Работает.
Сначала беру текущее время $dateNow = time();
Потом беру временя последнего посещения юзера из базы + сутки в секундах: $dateLast = $row['last_date'] + 86400;
Потом сравниваю:
Только как-то это наверное не правильно. В онлайн играх по другому. Там если заходишь после 12 ночи, то дают бонус один раз в сутки.
Сначала беру текущее время $dateNow = time();
Потом беру временя последнего посещения юзера из базы + сутки в секундах: $dateLast = $row['last_date'] + 86400;
Потом сравниваю:
Код: Выделить всё
if ($dateNow > $dateLast) { echo "BONUS"; }
Re: Ежедневные бонусы пользователям
можно завести булево поле в базе - забрал бонус - выставили trueVolgar писал(а):Там если заходишь после 12 ночи, то дают бонус один раз в сутки.
в 12 ночи по крону вызвали скрипт выставили всем false
Re: Ежедневные бонусы пользователям
Ну так тоже подумал:)
Re: Ежедневные бонусы пользователям
И всеже более рациональній 1 способ.
Re: Ежедневные бонусы пользователям
В чем проблема? Смотришь, попадает ли последнее время получения бонуса в интервал от текущего времени до ближайшей полуночи. Если нет, та даешь бонус
Re: Ежедневные бонусы пользователям
Не очень понял. Тоже кроном что ли?Смотришь, попадает ли последнее время получения бонуса в интервал от текущего времени до ближайшей полуночи. Если нет, та даешь бонус
Видимо с кроном самая лучшая идея.
1. Добавляем в таблицу со статистикой юзеров поле bonus с типом TINYINT.
2. Делаем крон-файл, который каждую полночь всем юзерам ставит 1 в этом поле.
3. Если юзер зашел, то скрипт смотрит какое там значение - если 0, то ничего. Если 1, то меняет его на 0 и отправляет команду на бонус юзеру.
Re: Ежедневные бонусы пользователям
А первый вариант вообще некорректно работает. Юзер может через каждый час заходить и скрипт отсчитывает сутки с последнего посещения.