php貼吧簽到
① 怎麼用php來獲取時間 周次 節次來做簽到功能
簽到功能主要是需要獲取上次簽到時間,然後進行比對,如果比較之後在零點之後,且大於24小時,就認為連續簽到失敗。
關鍵點:每次需要記錄簽到時間,這樣以後無論是根據記錄,還是相應演算法都可以統計相關的簽到記錄。
簽到功能核心就是時間的比較,只要比對好時間,然後封裝簽到方法,就可以輕松記錄簽到情況。
② 請問下貼吧用php代碼怎麼樣寫回復人對回復人的評論,以下是我建的發帖和回帖的數據表,不知道怎麼才可
想要找到回復人的賬號,回復人必須登陸網站,登錄網站就可以從當前回復人的,$_SESSION[] 中取得回復人ID 然後給放到對應的回復表中。
③ PHP中怎樣防止每次重復簽到。一天有三個時間段可簽到,7點到9、13點到15、18點到19。每個時間段只可簽一次
簽到時查詢最後一次記錄,比較時間,如果在相應時段已簽到就不能再簽了
④ thinkphp怎麼實現類似於百度貼吧的功能
站沙發
⑤ PHP求連續簽到天數
設計表結構時多加一個欄位來存放連續簽到天數,每次簽到時更新這個欄位要簡單的多
否則你需要 每個人 都循環判斷前一天是否簽到的方法來解決
參考代碼
1--循環法
declare@dayint=1,--
2@userIdint=1,--用戶id
3@countint=0,--連續簽到多少天
4@isSinginTodayint--今天是否簽到
5
6whileexists(select*from#SignInLog
7whereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=@day)
8begin
9set@count=@count+1--【循環方法】
10set@day=@day+1--
11end
12
13select@isSinginToday=COUNT(*)from#SignInLogwhereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=0--今天是否登錄
14
15
16select@isSinginToday,--當天是否簽到
17@count+@isSinginToday--連續簽到n天
如果資料庫支持row_number(), mysql 不支持此函數...
可以用
declare@nowdatetime=getdate(),
@countint,
@useridint=1,
@isSinginTodayint
select@count=count(*)from(
selectdatediff(day,CreateTime,@now)aa,--簽到時間對比今天的差值
row_number()over(orderbycreatetimedesc)bb--排序欄位
from#SignInLog
whereUserId=@userIdanddatediff(day,CreateTime,@now)>0--條件排除今天的簽到記錄
)Twhereaa=bbselect@isSinginToday=COUNT(*)from#SignInLogwhereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=0--今天是否登錄
select@isSinginToday,--當天是否簽到
@count+@isSinginToday--連續簽到n天
⑥ php 想做個簽到,但是怎麼判斷連續3天 連續7天 連續30天簽到過啊。。思路是有 但是MYSQL那邊的語句。
數據表裡存儲兩個欄位,一個int存時間戳,一個int存簽到計數。每次簽到發生時,php頁面做判斷,計算本次簽到時間戳與系統記錄的最後一次簽到時間戳之差,超過3600*24,則將計數修改為零,否則+1。
sql語句就不寫了吧,就一個update的事情。。。
⑦ PHP 如何判斷用戶當天已經簽到了
添加一張簽到記錄表,記錄用戶簽到時間,然後每次檢測簽到記錄表,如果時間的年月日等於當天,那麼說明當天已經簽到,如果不等於,說明沒有簽到,如果連續簽到的話,那麼在用戶表增加一個連續天數欄位,每次簽到自增1,如果下次簽到中斷了,那麼自動清0,重新計算。邏輯不復雜,自己可以琢磨一下。
⑧ php mysql 日歷式簽到 怎麼做
給你個思路,代碼實現並不難。首先在你的用戶表中插入一個欄位,用來保存簽到的時間戳,用戶點擊簽到時,先從資料庫中取這個時間戳,與今天0點的時間戳進行比較,如果比今天0點的時間戳小,就說明今天沒有簽到,那麼更新這個欄位為現在的時間戳。如果比今天0點的時間戳大,就說明今天已經簽到過了,不做更改。
你可能會用到:
mktime 函數,這個函數是構築時間戳的,它的參數可以從右向左依次省略。省略的參數將會默認為本地時間。如:mktime(0,0,0) 這樣就取到了今天0點的時間戳。
time 函數,取當前時間的時間戳,這個函數沒有任何參數。
⑨ 請問下那個PHP每日簽到時怎麼實現的!
以淘寶網領取淘金幣的簽到系統為例:
目標:
第一天簽到增加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
⑩ 貼吧的積分有什麼用
網路貼吧的積分可以作為該吧提升等級之用,不同的積分會有不同的級別,當然等級越高越有成就感,增加貼吧積分的方法:
1、網路貼吧中,樓主發表和吧主題相關的優質內容,並且這些內容是吧友感興趣的,促進大家一起交流卜嫌腔和互動,每天回帖加經驗的上限是1000分。
2、在線時長:每天在吧內有登錄訪問記錄,即可加1分,在線時間越長,分數相對越高。每日上限4分。
3、參與討論:每天在吧內有主動行為記錄(包括頂貼,回貼,發貼,投票),即可加1分,越活躍則分數越高,4分為上限。
4、每日簽到:在電腦上第一天簽到經驗是2分,而連續簽到則是4分經驗;在手機上者腔(用普通瀏覽器,不用客戶端)第一天經驗是3分,連續簽到經驗是5分;用貼吧客戶端(平板,手機型衫)第一天經驗是6分,連續簽到經驗是8分。