Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ежедневный бонус (24 ч)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ежедневный бонус (24 ч)
camo1018
Отправлено: 24 Ноября, 2016 - 09:12:31
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




Привет всем. Есть сайт
Есть кнопка http://image[dot]prntscr[dot]com/image/0[dot][dot][dot]649a4b30fda1[dot]png
Как сделать чтобы при нажатии на неё выдало 250 монет каждые 24ч? (Чтобы после нажатия на кнопку появлялся таймер)


Отредактировано модератором: Мелкий, 24 Ноября, 2016 - 10:13:33
 
 Top
3d_killer
Отправлено: 24 Ноября, 2016 - 09:27:33
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




кому выдавало? куда зачисляло?
 
My status
 Top
camo1018
Отправлено: 24 Ноября, 2016 - 09:31:28
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




3d_killer пишет:
кому выдавало? куда зачисляло?

Есть БД, в БД есть таблица Users. Имеется строка balance
Чтобы при нажатии пользователя, выдавался бонус!
 
 Top
3d_killer
Отправлено: 24 Ноября, 2016 - 09:35:01
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




добавь поле даты зачисления, и при выводе кнопки сравнивай, если сегодня выдавался то нехитрыми вычислениями выводи время сколько до следующего бонуса осталось
 
My status
 Top
camo1018
Отправлено: 24 Ноября, 2016 - 09:50:51
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




3d_killer пишет:
добавь поле даты зачисления, и при выводе кнопки сравнивай, если сегодня выдавался то нехитрыми вычислениями выводи время сколько до следующего бонуса осталось

Мне бы кодик Улыбка
 
 Top
camo1018
Отправлено: 07 Декабря, 2016 - 21:19:12
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




Дайте код, пожалуйста.
 
 Top
Fart
Отправлено: 08 Декабря, 2016 - 02:48:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




каждые 24 часа - это сутки.
значит тебе нужно ориентироваться не на время, а на дату. и вообще такое решается по разному (обновление при входе либо через крон). попытаюсь алгоритм "родить":

1. создаешь столбец в субд с именем к примеру bonus c типом varchar (для фиксации ежедневного бонуса. к этой задаче можно применить типы varchar, date или текст) и access тип int (для подтверждения, что юзверь получил ежедневный бонус)

2. обязательно делаешь первую запись входа пользователя (создаешь запрос
INSERT INTO `пользователи` (тут что то в субд) VALUES (тут данные для субд, в том числе bonus и access)
значение пусть будет таким: bonus = '".Date("dmY")."' и access = 0

3. начисление бонуса:

Спойлер (Отобразить)


4. создаешь кнопку, иконку с этим самым бонусом с динамической ссылкой или аякс запросом на выполнение апа бонуса.

код пыха такой:
Спойлер (Отобразить)


что касается крон, то там просто и в тоже время сложно (в каком то смысле), так как зависит от структуры субд и от самого приложения и статистических данных (а именно посещаемость, активность и прочая лабуда).

в связи с этим при входе юзверя в приложение более менее оптимально с точки зрения выполнения задачи.

(Отредактировано автором: 08 Декабря, 2016 - 02:50:19)

 
 Top
Мелкий Супермодератор
Отправлено: 08 Декабря, 2016 - 10:26:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Fart пишет:
каждые 24 часа - это сутки.
значит тебе нужно ориентироваться не на время, а на дату.

А вот и есть два варианта:
- или считать календарную дату
- или считать ровно 24 часа от последнего аналогичного действия.

Поведение будет разное, этот момент должна разъяснять конкретная задача.

В любом случае, используйте нормальный формат даты, а не странный костыль.

Fart пишет:
и access тип int (для подтверждения, что юзверь получил ежедневный бонус)

А зачем он нужен? Наличия сегодняшней даты самодостаточно.
Дата default null.


-----
PostgreSQL DBA
 
 Top
Fart
Отправлено: 08 Декабря, 2016 - 13:04:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




Мелкий пишет:
Наличия сегодняшней даты самодостаточно.


не даты в целом, а только число месяца.

(Отредактировано автором: 08 Декабря, 2016 - 13:36:06)

 
 Top
Мелкий Супермодератор
Отправлено: 08 Декабря, 2016 - 14:15:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Fart пишет:
не даты в целом, а только число месяца.

Дата, и нафиг не нужны ни второе поле ни крон при полном сохранении логики работы.


-----
PostgreSQL DBA
 
 Top
Fart
Отправлено: 08 Декабря, 2016 - 15:25:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




что то на словах это все. и в итоге гейзенбаги

(Отредактировано автором: 08 Декабря, 2016 - 15:27:23)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB