2014-01-15 24 views
0

在我的帳戶的用戶,我有一個顯示以下內容的「上次登錄」部分:通過LIMIT 1獲得最後的登錄 - PHP和MYSQL

<?php 
    $getLog = "Select * from tblUserLogs where UserID = $id ORDER BY LogID DESC limit 1"; 
    $loadLog = mysql_query($getLog); 
    while($Logs = mysql_fetch_array($loadLog)){ 
     $ID = $Logs['id']; 
     $LastLogin = date('F j, Y, g:i a', strtotime($Logs['LastLog'])); 
     //$myLast = date('F j, Y, g:i a', $LastLogin); 
     echo "<small>".$LastLogin."</small>"; 
    } 
?> 

然而,顯示當前登錄的日期和時間。

應該怎麼做?它應該是極限2並顯示最小的主鍵。有沒有辦法在mysql語句上做到這一點?

+0

如果在查詢中使用ORDER BY LastLog,該怎麼辦?否則共享表結構來構建更好的查詢。 –

+0

當前登錄是您的最後一次登錄。你期望得到什麼? – sqlab

回答

0

我認爲你要找的是一個偏移量,所以你避免了第一個入口。

LIMIT 1, 1 
+0

偏移量如何工作? – Clary

+0

對不起,我沒有足夠的解釋 - 它會將數據抵消第一個數字的數量。所以通常情況下它會將其作爲0,所以它開始限制返回的第一條記錄中的數據。如果您將偏移量設置爲1,它將從第一條記錄開始,然後再限制爲1,本質上爲您提供第二條結果。 – Ryan

+0

感謝您的支持! :D – Clary

0

無論是用在哪裏(如果你在你的表日期列)

SELECT * FROM tblUserLogs 
WHERE UserId = <id> 
AND loginDate <current login timestamp> 
ORDER BY loginDate DESC 

或者用LIMIT 1,1(跳過一個,需要一)

+0

應該是$ id嗎? – Clary

+0

這不是PHP代碼,只是簡單的SQL與僞變量。你是對的,你需要'$ id'。但是,我無法強調這一點:使用參數化查詢http://de2.php.net/manual/en/security.database.sql-injection.php –