2013-03-15 61 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吐温“$从”和“$为”