2012-03-13 4 views
1

私は従業員の出席システムを実装しています。 は、次のクエリで間違っているものを私に教えてくださいすることができ:tbtimedetailのNow()を含むinsertクエリで何が問題になっています

INSERT INTO tbtimedetail (outTime) VALUES (NOW()) WHERE empID= '$empid_var' and outTime='NULL'; 

構造は次のとおりです。

CREATE TABLE tbTimeDetail(
timeID Int PRIMARY KEY AUTO_INCREMENT, 
empID Int(5), 
dateDetail Date NOT NULL, 
inTime Time NOT NULL, 
outTime Time NOT NULL, 
FOREIGN KEY (empID) REFERENCES tbempdetail (empID) 
); 

答えて

1

insertのみは、データベースに行を追加します。 A ここで、フィルタは意味をなさない。

あなたは更新既存の行しようとしているように見えます:

update tbtimedetail 
    set outTime = NOW() 
    WHERE empID= '$empid_var' and outTime is NULL; 
+0

heyy問題が解決しました! :) – Aps

0

あなたはUPDATEの代わりに、このようなINSERT使用する必要があります:マットによって示唆されるように

UPDATE tbtimedetails t 
SET t.outTime = NOW() 
WHERE t.empID = '$empid_var' AND t.outTime IS NULL 
0

を、あなたが使用する必要がありますヌルかどうかを調べるにはNULLか?

また、NOW()の代わりにCURRENT_TIME()メソッドを試してください。 詳細なMySQLの時間関連のメソッドと操作については、以下のURLを参照してください: http://www.roseindia.net/sql/sqldate/mysql-time-function.shtml

関連する問題