2013-03-15 49 views
4

我已經MySQL表是這樣的:PHP的MySQL搜索兩個之間的日期

id  start_date   username 
1  2013-04-04   18 
2  2013-03-31   19 
3  2013-04-04   19 
4  2013-04-02   19 
5  2013-04-03   18 

我試圖讓用戶名其中起始日期是2013年5月1日2013年3月31日之間,以下查詢:

// $from = 2013-03-31 and $to = 2013-03-01 (example) 

$search = mysql_query("SELECT username FROM oc_calendar WHERE start_date >'$from' AND 
start_date < '$to'"); 
$re_search = mysql_fetch_array($search); 
echo $search_p_id = $re_search['username']; 

但它只是打印用戶名= 18,它應該是打印18和19號碼用戶名。爲什麼它不顯示?任何想法?

回答

6

查詢:

$search = mysql_query("SELECT username FROM oc_calendar WHERE 
start_date between '$from' AND '$to'"); 

,你需要一個while循環,以顯示更多的一個用戶名和正確的SQL查詢(見上文):

while($re_search = mysql_fetch_array($search)) { 
    $re_search['username'] . '<br>'; 
} 
+1

謝謝@Treps它的工作:) – 2013-03-15 17:26:44

+0

不客氣。樂意效勞。 :) – Treps 2013-03-15 18:42:03

0

您可以使用此查詢:

$search = mysql_query("SELECT username FROM oc_calendar WHERE start_date between '$from' AND '$to'"); 

關於您所使用的條件:

where start_date >'$from' 

你沒有fromdate = 2013年3月31日,因此上述條件不爲真名= 19.您應該使用

where start_date >= '$from' and startdate <='$to' 
+0

它只是顯示18個用戶名。 – 2013-03-15 17:12:01

+0

那麼,您的更新查詢不顯示18和19號碼的用戶名。 – 2013-03-15 17:17:32

0

SELECT username FROM oc_calendar WHERE start_date be吐溫「$從」和「$爲」