php mysql 日历式签到 怎么做

php mysql 日历式签到 怎么做,第1张

给你个思路,代码实现并不难。首先在你的用户表中插入一个字段,用来保存签到的时间戳,用户点击签到时,先从数据库中取这个时间戳,与今天0点的时间戳进行比较,如果比今天0点的时间戳小,就说明今天没有签到,那么更新这个字段为现在的时间戳。如果比今天0点的时间戳大,就说明今天已经签到过了,不做更改。

你可能会用到:

mktime 函数,这个函数是构筑时间戳的,它的参数可以从右向左依次省略。省略的参数将会默认为本地时间。如:mktime(0,0,0) 这样就取到了今天0点的时间戳。

time 函数,取当前时间的时间戳,这个函数没有任何参数。

给你一点实现的思路吧:

首先由于是签到,所以必须要得到签到人的信息,这里可以用登陆来解决。

在HTML

页面上显示一个按钮,用户点击一下,就将用户的信息,当前系统的日期,存到mysql中。表示用户已经签到了。

签到要得到时间,前端可以使用一个jquery插件叫:

datepiker,这个插件可以稍微改进一下,用来显示用户那些日期签到过。

具体的签到规则是

管理员在后台配置,每次连续签到的天数 然后赠送积分或者其他一些优惠,还要设置每人是否领取一次。

主表是签到基本设置

规则是副表

然后用户签到是一张表。现在纠结在如何去判断用户是否领取过。

是否还要添加一张表?

评论 (1) • 分享 • 链接 • 2015-10-18 

0

签到表

CREATE TABLE `signin` (

`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, # ID

`cid` INTEGER UNSIGNED NOT NULL , # 角色ID

`signstatus` SMALLINT(1) NOT NULL DEFAULT 0, # 当天是否签到 0-未签到 1-普通玩家已签到 2-vip玩家已签到

`signdatetime` DATETIME DEFAULT '2012-01-01 12:12:12',# 签到时间

`signtimes` SMALLINT NOT NULL DEFAULT 0, # 当月签到天数

PRIMARY KEY (`id`),

FOREIGN KEY (cid) REFERENCES characters(cid) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8– kolnick 2015-11-25

1个答案 票 数

yunzl

0 票

yunzl6

如果你非要省张表

那就添一列储存数字的

然后我们来玩玩2进制

给你一串二进制,你怎么算成十进制?

1000 == 2^3 =8

0100 == 2^2 =4

0010 == 2^1 =2

0001 == 2^0 =1

(任何非0的0次冥为1)

也就是说 1111 = 2^3 + 2^2 + 2^1 + 2^0 = 15

可能你会说卧槽这跟我的要求有什么关系

你不觉得 未领取or已领取很贴二进制么。。。

0为未领取 1为已领取

好我们继续

假设我们有4个领取活动

第一个 新人领取活动

第二个 100天签到领取活动

第三个 200天签到领取活动

第四个 300天签到领取活动

新人注册了个号,点开了领取页

服务器在签到表里取出了我让你添加的那列

是0

代码机械的处理了起来

首先转成2进制,还是0

""切割每个字符得到数组a

比如我们想知道这个新人的 第一个 任务有没有领取

那就判断

$a[count($a)-1]是否空字符,空字符就等于没领取(php取数组数量应该是count吧)

不是空字符再判断是不是0,是0就等于没领取

是1就是领取过了

同理$a[$a.Length-2]就是第二个任务,$a[$a.Length-3]就是第三个任务

那么如何写回去呢

新人看那个新人任务没领取过,于是点了一下

服务器同样取出这个数字,转2进制,切割,判断$a[count($a)-1]是不是没领取,

既然没领取那咱么就发奖励吧

运行完发奖励的程序后,开始写入领取信息

$a[count($a)-1]=1//嗯,1就是领取过了,然后

$i=count($a)

$num=0//算总数的变量

while(i){//i为真则循环,0不算,所以到i=0就不会运行了

i--//现在$a[i]==$a[count($a)-1]了

if($a[i]){//必须为真才能运行,而空白和0都不为真,所以建议0为未领取

$num+=pow(2,i)//php的算次冥应该是这个吧

}

}

echo $num//存上,打完收工


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7200694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存