iT邦幫忙

0

PHP MySQL 資料管理

我在寫一個管理員工資料的網頁,有一個指定項目,我一直完成不了!想請各位大大幫忙解答一下⋯⋯
例:有位同仁離職,我要做刪除他的員工資料,但是在MySQL(phony admin) ?他這筆資料只是被隱藏,並備註為"離職",當我在網頁查詢他時,會顯示此員工已離職,這樣要怎麼寫呢?

2
danielp2
iT邦新手 4 級 ‧ 2016-08-26 11:03:40
最佳解答

可以簡單直接按你想法一步步做,

  1. "這筆資料只是被隱藏"
    在MYSQL 加一個欄位"是否隱藏"(display), 用數值01比較節省空間, 用中文也可。
    之後,Select資料個時可以加一條件在後面, select * from table where display = '1';

  2. 備註為"離職"
    在MYSQL 加一個欄位"備註"(Remark), 用英文比較節省空間, 用中文也可。

  3. 當我在網頁查詢他時,會顯示此員工已離職
    在MYSQL 加一個欄位"在職狀態"(status), 數值01比較節省空間, 用中文直接寫已離職也可。

事後可以優化結合, 也可以直接分多幾欄, 反正老闆只看結果。

danielp2 iT邦新手 4 級 ‧ 2016-08-26 11:05:20 檢舉

個第3排版有點問題

3.當我在網頁查詢他時,會顯示此員工已離職

在MYSQL 加一個欄位"在職狀態"(status), 數值01比較節省空間, 用中文直接寫已離職也可。

2
jerry00218
iT邦好手 10 級 ‧ 2016-08-26 00:12:39

那你將該員工資料表新增一個欄位,該欄位是用來記錄在職狀況,如為 0 為已經離職,而為 1 則是在職中,你在 SELECT 員工資料的時候就可以依照該欄位做判斷,也記得在顯示在職員工清單時,要以在職中的條件進行搜尋。

4
賽門
iT邦超人 1 級 ‧ 2016-08-26 09:43:41

員工離職,但資料還是要保留,因為有可能所得稅什麼的都還要處理。

可以利用離職日期欄位,例如欄位名為Left_Date,另外,還應該有到職日期,例如欄位名稱Arrive_Date。

如果這個欄位不是空白,或是晚於到職日期就代表離職。

基本上,我不太喜歡在欄位裏塞NULL值,所以日期欄位我會預設1900/1/1,因此....可以這樣寫:


Select ....., CASE WHEN Left_Date > "1900/1/1" AND Left_Date >= Arrive_Date THEN "離職" ELSE "在職" END As Job_Status, .....   From Employee Where .....

這樣,取出的員工記錄會多一欄位Job_Status,把這個欄位顯示出來就行了。

這個欄位可以當成其他欄位一樣在程式中應用的。

另外,為什麼會是Left_Date >= Arrive_Date呢?大於或等於?因為有些人到職當天就離開了,這樣子的員工資料還是要保留,以免日後有什麼爭議,資料被刪就找不到了。

我要發表回答

立即登入回答