2013-04-16 141 views
0

我正在爲我的公司創建考勤管理系統。爲此,我在我的mysql數據庫中有一個名爲PRESENCE的表。表格如下所示。Mysql數據檢索

+ ------ + ------------- + --------- + ---------- + - ---------- + -------- + ------ + ------ +

| pid | shift_time | timein |超時|工作時間|日期| uid |一天|

+ ------ + ------------- + --------- + ---------- + --- -------- + -------- + ------ + ------ +

我有兩個按鈕在我的HTML檢查和檢查出。員工每天登錄並在上班時點擊登記按鈕。當他們點擊按鈕檢查我插入新行上述表

pid(auto incremented), 
timein(server time), 
timeout(default value 00:00:00), 
date(server date), 
uid(logged in employee id), 
day(present day like monday,tuesday etc.) 

而當他們點擊結賬按鈕,我剛剛更新的超時值以服務器時間和計算workhours和更新太多。

在我的html中,我寫了一個select查詢來從這個表中爲特定的員工id選擇所有行並顯示輸出。現在我的問題是,如果用戶不檢查任何日期,我希望該日期顯示爲"absent" or "no-shift".我不確定如何執行此操作。任何想法和幫助將不勝感激。我需要儘快完成這個項目。

在此先感謝。

回答

0

如果你假定一個工人需要工作五個星期,那麼對於'缺席'或'不換班'的情況,你可以顯示沒有換班的日子。這些缺失的行需要由工作人員解釋。

至少我認爲你需要添加一個'type'列到表中,這將是一個枚舉(SHIFT,ABSENT)。

一般而言,對於這些額外的用例,單個表模式似乎有點限制。

+0

我確實知道你現在說什麼。但我真的不知道如何去做。在我的情況下,只要用戶點擊網頁上的登記按鈕,數據庫就會得到一個新的行。所以如果一個工作人員一天不會來,顯然這個特定工作人員的特定日期在數據庫中不會有任何行。那麼現在我怎麼知道那天工作沒有來?我是PHP和MySQL的新手,很抱歉,如果我不清楚你的想法。 –