首先我在資料庫裡建了兩張表,乙個是使用者的積分表,乙個是簽到狀態表,分來用來記錄使用者的積分數和先到狀態
在使用者簽到狀態表中我們有乙個字段,last_sign_time,即上一次簽到時間,每次可以簽到的時候把這個時間與當前時間進行比較 如果相差為0天,則說明今天已簽到(這個簽到是24小時內只能簽到一次,即兩次簽到時間要相差24小時以上).如果等於一天則今日可以簽到,如果2天及其以上則說明漏簽了.
通過時間戳的判斷,及時更新狀態表,並且當可以簽到的時候則對使用者積分表進行操作,即更新使用者積分.
<?php
$user_id=@$_request['user_id'];
//功能:計算兩個時間戳之間相差的日時分秒
//$begin_time 開始時間戳
//$end_time 結束時間戳
function timediff($begin_time,$end_time)
else
//計算天數
$timediff = $endtime-$starttime;
$days = intval($timediff/86400);
//計算小時數
$remain = $timediff%86400;
$hours = intval($remain/3600);
//計算分鐘數
$remain = $remain%3600;
$mins = intval($remain/60);
//計算秒數
$secs = $remain%60;
$res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
return $res;
}function upuserscore($current_total_day)
if(mysqli_num_rows($rs))
$scoreusdateq = "update user_score set user_total_score ='98' where user_id=$user_id;"; //更新
mysqli_query($scorelink,"set names utf8");
$ustaters = mysqli_query($scorelink,$scoreusdateq); //獲取資料集
if($ustaters ==1)else
}else
if(strpos($q,"select") === false)
mysqli_close($scorelink);//關閉連線
}}//讀取資料庫配置資訊的ini檔案
$ary=parse_ini_file('db.ini');
$db_login_name=base64_decode($ary['db_login_name']);
$db_login_password=base64_decode($ary['db_login_password']);
$db_host=base64_decode($ary['db_host']);
$db_name=base64_decode($ary['db_name']);
//鏈結資料庫
$link=mysqli_connect($db_host,$db_login_name,$db_login_password);
mysqli_select_db($link,$db_name); //選擇資料庫
//檢查簽到表裡是否有該使用者 有的話則更新資料 沒有的話則插入資料
$q = "select * from user_signin where user_id=$user_id"; //sql插入語句
mysqli_query($link,"set names utf8");
$rs = mysqli_query($link,$q); //獲取資料集
if(!$rs)
if(mysqli_num_rows($rs))
//根據上次簽到時間和這次簽到時間作比較判斷有沒有漏簽和今日是否已簽到
$current_total_day=intval($total_day)+1;
$current_day=time();
$ary = timediff($last_time,$current_day);
if($ary[day]==0)else if($ary[day]==1)else
}elseelse
}}else
}mysqli_close($link);//關閉連線
?>
PHP實現簽到功能
php實現簽到功能 1 表設計 1 主表 create table sign id int 11 not null auto increment comment 主鍵自增 uid varchar 50 not null default 0 comment 使用者id 唯一 username varc...
PHP 實現簽到功能
如圖所示 實現上圖功能,建立兩張表 簽到獎品表 簽到記錄表 這個表可以再拆分出乙個表 2 功能 計算兩個時間戳之間相差的日時分秒 3 begin time 開始時間戳 4 end time 結束時間戳5 6public function timediff begin time,end time el...
PHP實現簽到功能
1 表設計 1 主表 create table sign id int 11 not null auto increment comment 主鍵自增 uid varchar 50 not null default 0 comment 使用者id 唯一 sign count int 11 not n...