5

我有这样的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

我正在尝试通过以下查询获取 start_date 在 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']; 

但它只是打印用户名 = 18,它应该是打印 18 和 19 数字用户名。为什么它不显示?任何的想法?

4

3 回答 3

8

询问:

$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>';
}
于 2013-03-15T17:17:06.043 回答
1
SELECT username FROM oc_calendar WHERE start_date between '$from' AND '$to'
于 2013-03-15T17:11:05.040 回答
0

您可以使用此查询:

$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'
于 2013-03-15T17:09:53.957 回答