2009-12-29 98 views
1

嘿,有人可以告訴我使用php mysql查詢如何添加日期和時間,當一個人登錄並登出數據庫表內。使用php mysql添加登錄時間

+0

登錄時間很容易捕捉,但是當用戶點擊註銷鏈接/按鈕時可以可靠地捕捉註銷。會話超時或用戶離開網站和/或返回... – 2009-12-29 10:34:57

回答

4

要跟蹤的最後一個記錄,在和記錄出的,你需要在你的「user」表(或者你可以有任何等價物)添加兩個datetime領域;例如:

  • log_in日期時間
  • log_out日期時間


然後,當你有一個用戶登錄時,您更新log_in領域,以查詢像這樣:

update user 
set log_in = NOW() 
where user_id = 123 

當然,您必須使用正確的表名稱,「id」字段的正確名稱和正確的用戶標識;-)


同時檢測用戶登錄出,對於其他領域:

update user 
set log_out = NOW() 
where user_id = 123 

(和相同的音符)


作爲旁註:檢測當用戶登錄-in很容易:他必須鍵入他的登錄名/密碼或類似的東西,並且可以將update查詢置於用於處理該表單的操作中...

但是,檢測註銷並不容易:如果用戶點擊某個「註銷」鏈接,當然很容易 - 但如果用戶只是關閉瀏覽器(或者保持其計算機處於開啓狀態,但只是離開了),您沒有任何「註銷」操作...

0

您可以使用SQL查詢節省時間。假設你有一個名爲「last_login」的列,它是DATETIME數據類型。然後在用戶登錄時執行此操作:

<?php 
$userid = 1337; //This is an example ID 
$query = "UPDATE users SET last_login = NOW() WHERE user_id = $userid;"; 
mysql_query($query) or die('Error in MySQL query. Here is the error message: '.mysql_error()); 
?> 

請注意,很難知道用戶何時註銷。大多數用戶只是離開頁面而不註銷。您可以在每次用戶在頁面上執行某些操作時更新一個名爲「last_activity」的字段,並將它們計數爲,當其自上次記錄的活動開始已經過了五分鐘時,將其記錄爲

1

這是不容易檢測到當用戶註銷時(接近瀏覽器或重新啓動計算機)

的解決方案可以是增加一個最後的活動字段/表來更新最後一個活動(頁面加載/請求數據/視圖通過在所有文件上添加此更新,

最後,您想知道用戶何時註銷(或何時是用戶的上次活動) ,您可以從上次活動字段/表。

<?php 
$userid = ....; 
$query = "UPDATE users SET last_activity = NOW() WHERE user_id = $userid;"; 
mysql_query($query) or die('Error in MySQL query : '.mysql_error()); 
. 
. your code here 
. 
?>