php mysql实现每日签到积分_php+mysql+jquery实现日历签到功能

在网站开发过程中我们会经常用到签到功能来奖励用户积分,或者做一些其他活动。这次项目开发过程中做了日历签到,因为没有经验所有走了很多弯路,再次记录过程和步骤。

1.日历签到样式:

2.本次签到只记录本月签到数,想要查询可以写其他页面,查询所有签到记录。(功能有,非常麻烦,古没有做。)

3.前台代码

签到记录
已签到
立即签到
已签到
"); htmls.push(""); htmls.push("
"); htmls.push("
" + myMonth[0][0] + "" + myMonth[0][1] + "" + myMonth[0][2] + "" + myMonth[0][3] + "" + myMonth[0][4] + "" + myMonth[0][5] + "" + myMonth[0][6] + "
" + (!isNaN(myMonth[w][d]) ? myMonth[w][d] : " ") + "" + (!isNaN(myMonth[w][d]) ? myMonth[w][d] : " ") + "
"); htmls.push("
"); htmls.push(""); return htmls.join(""); }};

4.后台代码:查询今天是否签到:$points = M("points_log"); $userid=session("user.id"); $begintime=date("Y-m-d H:i:s",mktime(0,0,0,date("m"),date("d"),date("Y"))); $endtime=date("Y-m-d H:i:s",mktime(0,0,0,date("m"),date("d")+1,date("Y"))-1); $where=array( "points"=>"5", "user_id"=>$userid, "createtime" => array(array("gt",$begintime),array("lt",$endtime)), ); $res=$points->where($where)->order("createtime desc")->select(); //var_dump($res["0"]["points"]); $this->assign("res",$res);

5.查询积分:/*查询积分*/ $jfen=M(cuser); $list=$jfen->where(array("id"=>$userid))->field("points")->find(); $preg = "/[0]*/"; $poin = preg_replace($preg, "", $list, 1); $this->assign("poin",$poin);

6.签到写入数据库:/*签到*/ if(IS_AJAX){ $userid=session("user.id"); $type="签到"; $typename="checkin"; $id_status="up"; $date=Date("Y-m-d H:i:s"); $dataList=array( "user_id"=>$userid, "type"=>$type, "typename"=>$typename, "id_status"=>$id_status, "points"=>"5", "createtime"=>$date, "remark"=>"奖励5积分" ); $points = M("points_log"); if($points->add($dataList)){ $log=session("user.id"); $user=M("cuser"); $user->where(array("id"=>$log))->setInc("points",5); } $this->ajaxReturn($status); }

7. /*查询本月签到天数,并以json格式返回*/public function MonthSign(){ $userid=session("user.id"); $points = M("points_log"); $res=$points->where(array("user_id"=>$userid))->select(); $sign="["; foreach($res as $key=>$value){ $first=explode(" ", $value["createtime"]); $second=explode("-", $first["0"])["2"]; if($key==0){ $sign .= "{"signDay":"".$second.""}"; }else{ $sign .= ",{"signDay":"".$second.""}"; } } $sign .="]"; $this->ajaxReturn($sign,"json"); }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持网页设计!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值