2015-04-19 196 views
0

我可以連接到一個數據庫就好,但不知道$query語法的使用和它是否應該是一個foreach或while循環...但這裏是我試圖做:mysqli和php:查詢結構

我有一個名爲users的表的數據庫。每個用戶都有一個值,表明他們是否正在登錄系統。我也有一個在每行更新與$timestamp刷新用戶活動,以便他們不會被閒置出來...

我需要知道我怎麼可以通過mysqli程序樣式查詢數據庫並說,前端$person(或表中的行)檢查表格列「在線」是否設置爲1或0,如果它設置爲1,那麼我需要能夠做一個數學方程,需要$currentservertime並從存儲在數據庫中的$timestamp中減去,並查看它們是否已經閒置超過10或15分鐘。對於每次空閒時間比這段時間更長的人,我需要將其在數據庫中的「在線」狀態從1更改爲0(0表示他們不在線)。

這僅僅是一個函數,如果他們離瀏覽器更近並且不會退出程序或退出,就會擺脫數據庫中用戶的在線狀態。

在此先感謝任何能幫助我解決問題的人,或者指引我走上正軌。我試着先搜索,但基於需要同時做兩件不同的事情,我無法完全找到我正在尋找的東西。

+0

這可以在一個單一的查詢來完成,沒有PHP需要 –

+0

任何例子將不勝感激,這就是爲什麼我在這裏,是因爲我不知道如何,可能沒有太大的在線與發現這兩項行動。這一切都非常模糊:) – cjackson

回答

0

您不必選擇所有行並讓PHP過濾,因爲如果用戶表大約有1000萬行,那麼您的操作將非常緩慢。 您可以在不使用PHP的情況下設置離線用戶。您的查詢可能是:

$maxInactivity = 15; // in minutes 
$timestampToGoOffline = time()-($maxInactivity*60); 
$sql = "UPDATE users SET status = 0 WHERE last_action_timestamp < $timestampToGoOffline"; 
+0

謝謝你這麼快的回覆。我會盡快給你一個嘗試,並讓你知道:) – cjackson

+0

只是想放棄一條線,並說這工作完美。謝謝!即使即時有點延遲。 – cjackson