2012-06-25 40 views
0

我有一張表,其中包含字段:staff_id,leave_applied_from,leave_applied_to使用PHP和MySQL進行驗證之間的日期

+----------+--------------+------------+ 
| staff_id | applied_from | applied_to | 
+----------+--------------+------------+ 
|  1 | 2012-06-21 | 2012-06-21 | 
|  2 | 2012-06-21 | 2012-06-23 | 
+----------+--------------+------------+ 

因此要求,如果1會嘗試staff_id輸入日期2012-06-21應該不允許進入它,如果staff_id 2嘗試輸入日期2012-06-22它不應該允許工作人員進入。

我知道如何在PHP端顯示錯誤,但我不知道如何檢查數據庫日期是否存在於數據庫中,我不知道如何檢查兩個字段中的單個MySQL查詢。

查詢應先檢查staff_id,然後檢查其他字段(applied_from,applied_to)。如果工作人員已經進入相同的日期範圍,它應該會出錯。

回答

1

請嘗試以下:

SELECT * from tbl where (applied_from =< @inputdate AND applied_to >= @inputdate) 
AND [email protected] 

如果查詢返回的記錄,這意味着在日,關鍵是在範圍之內,你可以提示錯誤。

+0

這工作正常:)謝謝:) –

0
select case when curdate() < applied_from or curdate() > applied_to 
      then 1 
      else 0 
      end as is_staff_id_ok 
from your_table 
where staff_id = 1