一、web前端及ajax部分文件index.html
<html> <head> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <title>PHP+AJAX+MYSQL实现每日签到</title> <script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript">//page load get num $(window).ready(function(){ doGetDays(); }); //get sign days function doGetDays(){ $.get("/sign.php?do=getDay",{},function(data){ $("#days").html(data); }); } //do sign function doSign(){ $.get("/sign.php?do=sign",{},function(data){     if(data==1){ alert("sign success!"); window.location.href='/'; }else if(data==2){ alert("already sign today! next tomorrow!"); } }); }</script></head> <body><a style="cursor:pointer;" οnclick="doSign();">签到<span>连续签到<span id="days"></span>天</span></a></body> </html>

 
二、PHP后端处理部分 
sign.php文件<?php if ($_GET['do']=='getDay'){ $db=new mysqli('localhost','root','123456','sign'); $uid=2; $getDay="SELECT `signdays` FROM `user` WHERE `id`= {$uid}"; $day=$db -> query($getDay); $days =$day -> fetch_array(MYSQLI_ASSOC); echo $days['signdays']; } if ($_GET['do']=='sign'){$db=new mysqli('localhost','root','123456','sign');$uid=2; $time=time(); //check sign today $todayBegin=strtotime(date('Y-m-d')." 00:00:00"); $todayEnd= strtotime(date('Y-m-d')." 23:59:59"); $checkSignSql="SELECT * FROM `sign` WHERE `uid` = {$uid} AND `dateline` < {$todayEnd} AND `dateline` > {$todayBegin} "; $checkSignToday= $db -> query($checkSignSql); $checkSign = $checkSignToday -> fetch_array(MYSQLI_ASSOC);if (empty($checkSign)){ $sql="SELECT * FROM `sign` WHERE `uid` = {$uid} "; $return = $db -> query($sql) -> fetch_array(MYSQL_ASSOC);//check sign table exist uid record if (empty($return)){//no$insertSql="INSERT INTO `sign` (`uid`,`dateline`) VALUES ('{$uid}','{$time}') "; $insert = $db -> query($insertSql); $updateSignSql="UPDATE `user` SET `signdays` =1 WHERE `id` = {$uid} ";$db -> query($updateSignSql); echo 1; }else{       // check is continuous ? reset with login set signdays as 0 !!!!!  $yesterdayBegin= strtotime(date("Y-m-d",strtotime("-1 day"))." 00:00:00"); $yesterdayEnd= strtotime(date("Y-m-d",strtotime("-1 day"))." 23:59:59"); $checkContinuSql="SELECT * FROM `sign` WHERE `uid` = {$uid} AND `dateline` < {$yesterdayEnd} AND `dateline` > {$yesterdayBegin}"; $checkContinuYesterday = $db ->query($checkContinuSql) -> fetch_array(MYSQL_ASSOC);          if (!empty($checkContinuYesterday)){            $replaceSql="REPLACE INTO `sign` (`uid`,`dateline`) VALUES ('{$uid}','{$time}') ";            $replace=$db -> query($replaceSql); $updateSignSql="UPDATE `user` SET `signdays` = `signdays` + 1 WHERE `id` = {$uid} ";$db -> query($updateSignSql); echo 1; }else{} }
}else{       echo 2;// allready sign.     } ?>

三、Mysql数据库部分
CREATE TABLE IF NOT EXISTS `sign` ( `uid` int(11) NOT NULL, `dateline` varchar(10) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;INSERT INTO `sign` (`uid`, `dateline`) VALUES (1, '1389072071'), (2, '1389072735'); CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'USERID', `username` varchar(35) COLLATE utf8_bin NOT NULL COMMENT 'username', `signdays` int(11) NOT NULL COMMENT '签到天数', PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ;INSERT INTO `user` (`id`, `username`, `signdays`) VALUES (1, 'ggbound', 4), (2, 'other', 1);  

转载于:https://www.cnblogs.com/qhorse/p/4829213.html

PHP+MYSQL+AJAX实现每日签到功能相关推荐

  1. mysql怎么做每天签到_PHP+MYSQL+AJAX实现每日签到功能

    sign.php文件 if ($_GET['do']=='getDay'){ $db=new mysqli('localhost','root','123456','sign'); $uid=2; $ ...

  2. 日历签到 mysql_php+mysql+jquery实现日历签到功能的方法

    本文主要介绍了php+mysql+jquery实现日历签到功能的过程与步骤,具有很好的参考价值 在网站开发过程中我们会经常用到签到功能来奖励用户积分,或者做一些其他活动.这次项目开发过程中做了日历签到 ...

  3. 每日签到功能怎么实现的?

    关于网友提出的" 每日签到功能怎么实现的?"问题疑问,本网通过在网上对" 每日签到功能怎么实现的?"有关的相关答案进行了整理,供用户进行参考,详细问题解答如下: ...

  4. js php 实现日历签到_js实现每日签到功能

    本文实例为大家分享了js实现每日签到功能的具体代码,供大家参考,具体内容如下 js: var calUtil = { getDaysInmonth : function(iMonth, iYear){ ...

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

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

  6. 每日积分返还的php代码,php实现每日签到功能

    每日签到的功能,供大家参考,具体内容如下 首次签到获得1个积分,第二次签到获得2个积分,第三次签到获得3个积分,以此类推但是签到必须每天连续积分才可以递增,如果有中断再次签到时获得积分仍然从1开始递增 ...

  7. js php 实现日历签到_php+mysql+jquery实现日历签到功能

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

  8. 基于jQuery的日历+每日签到功能

    公司要开发一个h5页面,里边有一个每日签到抽奖的功能,本以为这样的插件应该会有很多,结果找到的全都是仅生成日历的插件,于是乎就出现了下面这个东西.(前端菜鸟,请大神嘴下留情,也请小伙伴们多提宝贵意见) ...

  9. js php 实现日历签到_php+mysql+jquery实现日历签到功能的过程与步骤

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

  10. 日历mysql签到源码_php+mysql+jquery实现日历签到功能

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

最新文章

  1. 精密空调主要部件是干啥用的?
  2. 【网址收藏】rancher镜像源仓库
  3. hive查询where join_Hive解析流程-抽象语法树生成
  4. opencv学习笔记06
  5. winx修改计算机用户名,怎么修改我的电脑用户名win10
  6. 11.history命令历史
  7. 买车,给点建议和意见
  8. echarts3Dearth 地球数据可视化添加 tooltip效果和涟漪扩散的效果
  9. 呼吸灯(MUC辉芒微P61f145)
  10. Android自定义控件--圆形进度条(中间有图diao)
  11. 熟女给老实木讷男孩的恋爱建议(转帖)
  12. 十年微博与没落搜狐的社交求变
  13. foxmail 163企业邮箱配置
  14. Allegro PCB编辑界面功能全面介绍图文教程及视频演示
  15. JavaScript 的addEventListener() 事件监听详解!
  16. jQuery Validate详解
  17. 大数据及人工智能基础系列2 B+树
  18. IntelliJ IDEA 2019,从入门到癫狂,图文教程
  19. 采购里的“一分钱一分货”,确定你没被套路?
  20. 爬虫入门实践之爬取虎扑论坛帖子

热门文章

  1. shell 字符串包含关系
  2. APP 设计原则(界面设计原则) / 设计模式(界面设计模式、 程序架构模式、程序方法模式) 简述
  3. MAC电脑安装window系统(一):双系统安装方法
  4. 题解报告:hdu 1575 Tr A
  5. wenbao与最短路(Floyd)
  6. iOS APP中第三方APP调用自己的APP,打开文件
  7. linux C 总结篇(线程)下
  8. Linux磁盘设备文件(sda,sdb,sdc…)变化问题
  9. Win32 网络编程基本函数
  10. 七夕出手,这本情话秘籍请收好