2012-02-07 140 views
-2

有一張表格,其中有僱員登錄和註銷的日期時間。根據這個日期時間,我必須設置他們的狀態登錄或註銷。我必須在日期時間應用條件,如果日期在數據庫中第一次存在,那麼它將是登錄名,同一日期第二次存在同一日期,然後它將被註銷。如何檢查數據庫中是否存在某個特定的日期

我該怎麼做?

+0

I M試圖如果日期exists.but它不是去上班了申請條件。 – 2012-02-07 12:37:56

+0

你是什麼意思,「如果數據庫第一次存在日期那麼它將登錄和同一日期第二次同樣的員工存在,然後它會註銷」? – altschuler 2012-02-07 12:15:15

+0

這意味着在數據庫表中,除了date.so以外,將有兩個具有所有相同字段值的員工的條目。因此,我必須根據第一次或第二次輸入的日期來檢查。 – 2012-02-07 12:21:58

回答

0

如果我能幫到你,下一個代碼可以幫助你。 (這是一個如何做它的主要思想) 我假設該表是這樣的:

+ workers_logs

  • ID
  • worker_id
  • actiontime
  • BLA

我們將有一個名爲workers的數組,其結構爲:

workers[ worker_id ] [0] = 'login' 
workers[ worker_id ] [1] = 'logout' 
workers[ worker_id ] [2] = 'login' 
workers[ worker_id2 ] [0] = 'login' 
workers[ worker_id2 ] [1] = 'logout' 
workers[ worker_id2 ] [2] = 'login' 

//代碼:

$workers = array(); 
$getWorkersLogs = mysql_query("SELECT worker_id,actiontime FROM workers_logs ORDER BY id ASC"); //Notice for: ORDER BY id ASC - it's very imporatnt in your case. 
while($logs = mysql_fetch_array($getWorkersLogs)) 
{ 
if((!array_key_exists($logs['worker_id'] , $workers)) || count($workers[$log['worker_id']]) % 2 == 0) 
{ 
    //This is the first time we are dealing with this worker (so it's login) 
    //or it's an even number. 
     ..... 
     ..... 

    //Add this worker id to our array so next time will be logout 
    $workers[$logs['worker_id']][] = 'login' 
} 
else 
{ 
    $workers[$logs['worker_id']][] = 'logout' 

} 
} 
相關問題