※ 引述《vincent20384 (風之水漾)》之銘言:
: 各位大大好
: 目前我想寫一個功能是能夠記錄每天登入的會員
: 是連續登入了幾天
: 然後依據第幾天跑出不同的訊息這樣
: 可以給我一點方向嗎?
假如你有個資料表隨時記使用者登入時間
那你就可以
select distinct user,date_format(login_date,'YYYY-mm-dd') as date from
login_history
where
user = '羽山'
group by date_format(login_date,'YYYY-mm-dd')
order by login_date desc
limit 6
這樣應該就可以出現
user date
羽山 2015-04-07
羽山 2015-04-06
羽山 2015-04-04
...
那你就可以開活動遊戲
連續登入日 ,活動
0 = 只有當日登入,下去領500
1 = 送草莓
2 = 送橘子
3 = 送蕃薯
4 = 送咖哩飯
5 = 送直升機
6 = 送過氣女藝人照片
接下來,你需要一個簡單的函式,把剛才查出的使用者資訊,看他到底連續登入了幾天
思考方向就是先從今日往前推,看你活動有幾天
2015-04-07 = 0 (當日)
2015-04-06 = 1
2015-04-05 = 2
2015-04-04 = 3
...
然後就把剛才使用者的表,跟這個活動表,作迴圈的比較
如果比對失敗,就取那筆資料
function return_keep_login_days($user_login_data)
{
$keep_logins = 0;
//Todo : 如果使用者的第一筆也不是當日,就跳出
//懶的寫了
//
//下面的7假設是活動數量
for($i=0 ; i < 7 (同 count($活動)) ; i++)
{
if($user_login_data[$i]['date'] != $活動[$i]['date'] )
{
return i;
}
}
}
這樣此 i 就等於回應了使用者最後一次登入的連續日期的活動 id
大概是這樣吧~ :)