2012-08-13 93 views
0

我有這兩個MySQL表:打印年月日列表

desc students; 
+---------------------------+---------------+ 
| Field      | Type   | 
+---------------------------+---------------+ 
| student_id    | INT(11)  | 
| student_firstname   | VARCHAR(255) | 
| student_lastname   | VARCHAR(255) | 
+---------------------------+---------------+ 

desc studentabsence; 
+---------------------------+---------------+ 
| Field      | Type   | 
+---------------------------+---------------+ 
| student_id    | INT(11)  | 
| student_absence_startdate | date   | 
| student_absence_enddate | date   | 
+---------------------------+---------------+ 

如果我運行下面的查詢:

SELECT 
    * 
FROM 
    students s 
     INNER JOIN studentabsence sa 
      ON s.student_id = sa.student_id 
WHERE s.student_id = '1' 

我得到以下輸出:

+------------+-------------------+-----------------+------------+---------------------------+-------------------------+ 
| student_id | student_firstname | student_lastname| student_id | student_absence_startdate | student_absence_enddate | 
+------------+-------------------+-----------------+------------+---------------------------+-------------------------+ 
|  1 | John    | Doe    | 1   | 2012-08-01    | 2012-08-08    | 
+------------+-------------------+-----------------+------------+---------------------------+-------------------------+ 

現在,我有一個<form>用戶可以選擇一個stu凹痕和日期範圍。我想知道是否有可能將用戶選擇的兩個日期與數據庫值進行比較,並且如果存在匹配,則回顯學生有數據的該範圍之間的所有工作日。

因此,使用上面的例子中,如果用戶的職位以下形式:

student_id = '1' 
student_absence_startdate = '2012-08-02' 
student_absence_enddate = '2012-08-06' 

我想echo

2012-08-02 
2012-08-03 
2012-08-06 

在正確的方向的任何指針被higly理解。

+1

將字段類型從'varchar'更改爲'date'。然後你可以對它進行日期操作 – 2012-08-13 09:50:56

回答

0

我只是在查詢的基礎上發佈此響應。此外,如果你保持你的數據類型,日期會幫助你很多。

SELECT * FROM students s 
INNER JOIN studentabsence sa ON s.student_id = sa.student_id 
AND s.student_id = '1' 
AND student_absence_startdate >= 2012-08-02 
AND student_absence_enddate < 2012-08-06 
+0

你好,謝謝。該數據類型是日期,但我忘記編輯這個時發佈我的問題。我只是好奇你的答覆將如何回答我的問題? – David 2012-08-13 11:06:00

+0

David我從你的問題中得到的是你想用日期寫一些查詢。我不知道這個查詢如何幫助你做echo,因爲我沒有PHP經驗。 – ankur 2012-08-13 11:46:10