以淘寶網領取淘金幣的簽到系統為例:
創新互聯建站專注于企業成都全網營銷推廣、網站重做改版、成華網站定制設計、自適應品牌網站建設、HTML5建站、成都商城網站開發、集團公司官網建設、外貿網站制作、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為成華等各大城市提供網站開發制作服務。
目標:
第一天簽到增加5個積分;第二天連續簽到則增加8個積分;第三天連續簽到,增加11個積分,第四天連續簽到,增加15個積分;第五天連續簽到,增加19個積分;第六天連續簽到,增加24個積分;第七天連續簽到,增加29個積分;第八天以后的連續簽到,都增加29個積分。連續簽到斷開,則積分從第一天開始計算。
思路:
這個比較簡單,思路是這樣的:
在用戶表里添加一個連續登錄的字段,如果每天連續登錄自增1,如果超過24小時的話就直接歸0.
再增加一個最后登錄的時間,格式是時間戳的。
首先判斷最后登錄的時間和現在的時間的時間差值是多少,函數如下:
?php
function checkTime() {
if (time() - 最后登錄時間 24*60*60 ) { // 判斷時間是否大于24小時
// 讓字段歸0
}
}
?
這個樣子就可以了。
至于加分就簡單了。
如果字段值為:
1就加5,
2就加8,
3就加11,
4就加15,
5就加19,
6就加24,
大于7就加29
給你個思路,代碼實現并不難。首先在你的用戶表中插入一個字段,用來保存簽到的時間戳,用戶點擊簽到時,先從數據庫中取這個時間戳,與今天0點的時間戳進行比較,如果比今天0點的時間戳小,就說明今天沒有簽到,那么更新這個字段為現在的時間戳。如果比今天0點的時間戳大,就說明今天已經簽到過了,不做更改。
你可能會用到:
mktime 函數,這個函數是構筑時間戳的,它的參數可以從右向左依次省略。省略的參數將會默認為本地時間。如:mktime(0,0,0) 這樣就取到了今天0點的時間戳。
time 函數,取當前時間的時間戳,這個函數沒有任何參數。
什么是thinkphp啊?
要是php代碼的話
就假設建個數據庫,主鍵是用戶名,一項是經驗值,一項是時間
點擊簽到,用get傳給一個php頁面一個值,php獲取之后,用select where 查找到cookie中的用戶名,找到對應的經驗值,先獲取一次付給變量,再加上10用update語句更改數據庫內容,并更改時間為最新次簽到時間
然后再看顯示簽到那頁,可以先用個php查找對應cookie的時間項 ,并與當前時間對比(這個看你咋設置了,是按24點過了就能在簽到還是過了24小時在下一次簽到),顯示簽到或已簽到(已簽到不賦予功能)
基本思路就這樣了,但不是最優化,比如那個顯示簽到已簽到,還要遍歷一次數據庫,如果數據庫數據量很大,遍歷很浪費時間,也可以放到另一個php里去實現查詢是否可簽
希望能有幫助
網頁標題:php簽到數據庫設計 php打卡簽到系統
文章地址:http://m.kartarina.com/article36/hgjisg.html
成都網站建設公司_創新互聯,為您提供云服務器、虛擬主機、微信小程序、靜態網站、外貿網站建設、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯