两个日期之间的Php Mysql搜索

两个日期之间的Php Mysql搜索,php,mysql,Php,Mysql,我看到的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-03-31到2013-05-01

我看到的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-03-31到2013-05-01之间:

// $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']; 
/$from=2013-03-31和$to=2013-03-01(示例)
$search=mysql\u query(“从oc\u日历中选择用户名,其中开始日期>'$FROM'和
开始日期<'to'”;
$re\u search=mysql\u fetch\u数组($search);
echo$search_p_id=$re_search['username'];

但它只是打印用户名=18,它应该是打印18和19号用户名。为什么它没有显示出来?有什么想法吗?

您可以使用以下查询:

$search = mysql_query("SELECT username FROM oc_calendar WHERE start_date between '$from' AND '$to'"); 
关于您正在使用的条件:

where start_date >'$from'
您的fromdate=2013-03-31,因此用户名=19的上述条件不成立。相反,你应该使用

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

其中开始日期>='$from'和开始日期查询:

$search = mysql_query("SELECT username FROM oc_calendar WHERE 
start_date between '$from' AND '$to'");
您需要一个while循环来显示多个用户名和一个正确的SQL查询(见上文):

while($re\u search=mysql\u fetch\u array($search)){
$re_search['username']。
; }
嗯,您的更新查询没有显示18和19号用户名。谢谢@Treps,它正在工作:)
$search = mysql_query("SELECT username FROM oc_calendar WHERE 
start_date between '$from' AND '$to'");
while($re_search = mysql_fetch_array($search)) {
  $re_search['username'] . '<br>';
}