2016-07-30 22 views
0

因此,我在小時表中存儲用戶time_in和time_out,當用戶登錄時,我在time_in字段中插入日期和時間,time_out值保持爲000:00:00:00現在我如何僅在註銷時更新time_out字段在最後插入的ID我更新日期和時間?更新time_out字段僅在everylogout到db中用戶的最後插入ID?

不管它有多少個註銷保持TIME_OUT只更新時間的最後插入小時表用戶ID,但是如果輸入新的登錄ID,然後在它更改爲新的一個我想是這樣的

$ dt = date(「Ymd h:i:s」);在小時表

UPDATE hours SET time_out = '".$dt."' WHERE member_id = '".$_SESSION['MEMBER_ID']."' 

字段

hours_id 
member_id 
member_name 
team 
time_in 
time_out 

我還沒有線索如何實現的其餘部分。會感謝你的幫助

確定這裏是我的logout.php

<?php 
include('config.php'); 
    //Start session 
session_start(); 
if(!isset($_SESSION['MEMBER_ID']) || (trim($_SESSION['MEMBER_ID']) == '')) { 
     header("location: index.php"); 
     exit(); 
} 
date_default_timezone_set('America/New_York'); 
$dt = date('Y-m-d h:i:s');  
$sql = "UPDATE hours SET time_out = '".$dt."' WHERE member_id IN (SELECT MAX(hours_id) FROM hours WHERE member_id = '".$_SESSION['MEMBER_ID']."'"; 
mysql_query($sql) or die(mysql_error()); 


    //Unset the variables stored in session 
    unset($_SESSION['MEMBER_ID']); 
    unset($_SESSION['LOGIN_NAME']); 
    unset($_SESSION['PASS']); 
    unset($_SESSION['TEAM']); 
?> 
+0

你有一個 ' 「$ DT。」'自動增加數據庫中的ID字段,您可以先查詢該用戶的MAX(id)。 'SELECT max(id)as LastId FROM hours WHERE member_id =:member_id'順便說一句,不要認爲會話變量是安全的注入到你的sql中。 – ArtisticPhoenix

回答

1

過濾器與用戶輸入的最大ID:從小時WHERE

$最大=請求mysql_query(「SELECT MAX(hours_id) member_id ='「。$ _ SESSION ['MEMBER_ID']。」'「);

$ row = mysql_fetch_row($ max);

然後,你原來的查詢將是:SET TIME_OUT

UPDATE小時= WHERE hours_id = ' 「$行[0]。」'

+0

謝謝你soo多伴侶im嘗試,但沒有影響到它留在00_00:00:00 – lalthung

+0

檢查$ dt和$ _SESSION ['MEMBER_ID']被定義(非空)在查詢聲明 –

+0

我試過回聲他們確實顯示結果以相同的方式,如果我插入到幾小時它插入logout.php但爲什麼不會得到更新 – lalthung