2012-02-07 4 views
-2

직원의 날짜/시간을 기록한 테이블이 있으며 로그 아웃합니다. 이 날짜 시간에 따라 상태 로그인 또는 로그 아웃을 설정해야합니다. 조건을 날짜에 적용해야합니다. 날짜가 데이터베이스에 처음 존재하면 로그인하고 동일한 직원이 같은 날짜에 두 번째로 존재하면 로그 아웃됩니다.데이터베이스에 특정 날짜가 이미 존재하는지 확인하는 방법

어떻게하면됩니까?

+0

나는 일이 밖으로 작동하지 않을 exists.but 경우 조건을 적용하기 위해 노력하고있어. –

+0

"처음으로 데이터베이스에 날짜가 있으면 로그인하고 같은 직원이 같은 날짜를 두 번째로 존재하면 로그 아웃됩니다"라는 의미는 무엇입니까? – altschuler

+0

데이터베이스 테이블에서 date.so를 제외한 모든 동일한 필드 값을 갖는 직원에 대한 두 개의 항목이 있음을 의미합니다.이 항목의 첫 번째 또는 두 번째 날짜 기준을 확인해야합니다. –

답변

0

내가 맞으면 다음 코드를 사용하면 도움이됩니다. 나는 테이블 같은 것을 믿고있어 (이 그 일을하는 방법의 주요 아이디어) :

+

  • ID
  • 이 worker_id workers_logs
  • actiontime

그리고 구조체가 될 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' 

} 
} 
관련 문제