PHP SQL查询结果与日期有关

时间:2013-02-01 13:44:27

标签: php mysql

我遇到以下代码的问题。

由于某种原因,它只显示10月,11月和12月的日期。

日期格式相同......见下文:

DATE            RESULT

2013-02-01      Does Not Display
2013-03-01      Does Not Display
2013-04-01      Does Not Display
2013-05-01      Does Not Display
2013-06-01      Does Not Display
2013-07-01      Does Not Display
2013-08-01      Does Not Display
2013-09-01      Does Not Display
2013-10-01      Displays OK
2013-11-01      Displays OK
2013-12-01      Displays OK

以下是查询代码:

$events = array();
$query = "SELECT title, DATE_FORMAT(date,'%Y-%m-%d') AS date FROM mytable WHERE user_id = '$session_user_id' AND date LIKE '$year-$month%' AND active = 1";
$result = mysql_query($query,$db_link) or die('cannot get results!');
while($row = mysql_fetch_assoc($result)) {

$events[$row['date']][] = $row;

}

任何人都有任何关于为什么会发生这种情况的想法?

2 个答案:

答案 0 :(得分:2)

我猜你用的是月= 1.你只有10,11和12,因为它们是从1开始的唯一月份。

答案 1 :(得分:1)

根据@ mellamokb的评论。而不是使用LIKE使用BETWEEN。这也使查询更快。

$query = "SELECT title, DATE_FORMAT(date,'%Y-%m-%d') AS date FROM mytable WHERE user_id = '$session_user_id' AND date BETWEEN '$year-$month-1' AND '" . date("Y-m-t", strtotime("$year-$month-1")) . "' AND active = 1";