2012-11-22 69 views
2

我是mysql的新手。任何人都可以幫我解決這個問題,如何在使用mysql在另一個字段中進行更改時將字段值更改爲NULL

「我有以下列emp ID,名稱,leaveto,leavefrom和狀態在我的表。如果員工申請離開他的經理可以接受或拒絕它。經理已經接受了假期,那麼身份證明文件將包含批准的價值(同樣被拒絕)。我想知道的是,員工第二次申請假時,leaveto和leavefrom列被更新,但狀態字段仍然存在相同「。

當leaveto和leavefrom列中有更新時,是否可以使狀態字段爲NULL。

這將通過比較他的ID和經理ID來更新員工的狀態字段(批准/拒絕)。如果該員工屬於經理「A」,則只有經理「A」可以批准/拒絕該員工。

"UPDATE leave_details join managerlogin on managerlogin.manager_id=leave_details.manager_id SET leave_details.leave_status='Approved' where (employee_id='$myemployee_id' and managerlogin.manager_id= '".$_SESSION['mymanager_id']."')"; 
+0

請問你可以在這裏發佈你的代碼嗎 – Basith

回答

0

是的,可以將值更新爲NULL。

Update tablename set columnname=null where put your condition... 
+0

事情是我只有在leaveto和leavefrom列的值發生變化時才需要使它爲NULL – user1844654

+0

你應該創建一個單獨的行每個假期。在這種情況下,你將有僱員採取的葉子的歷史。如果您更新該行,那麼您將不會有任何離開的記錄。因此,當僱員想要休假時,應該用新的leaveid創建新的行。狀態值應該等待。當經理批准休假,然後用以下查詢更新狀態: 更新離開設置狀態='批准'其中,leaveid =在這裏放新手編號 –

0

你可以只

update mytable 
set status = null, 
    leaveto = ... 
where emp_id = 17; 
0

這裏是設置爲NULLSatatus

UPDATE mytable SET status = null WHERE empid = '17' 

嘗試它的代碼...


將befor更新條件

if($_POST['leavefrom'] || $_POST['leaveto']) 
{ 
    $status == "NULL"; 
} 

UPDATE mytable SET status = '$status' WHERE empid = '17' 

通過使用此條件,您可以在離開時將Null值設置爲狀態並保留具有值。

+0

如何在離開和離開時改變狀態爲NULL列? – user1844654

+0

一旦員工申請離開他們的狀態應該是NULL ..在這裏有人被批准後。我是對的..? – Basith

+0

是儀式..當經理批准它的狀態變成「批准」。如果員工再次申請許可,則leaveto和leavefrom列會更改,但不會更改狀態字段。它仍然准許第二次休假。相反,它也應該改變它的價值,並等待經理批准它。 (否則該員工會認爲他申請的新假已獲批准。) – user1844654

相關問題