我遇到以下代码的问题。
由于某种原因,它只显示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;
}
任何人都有任何关于为什么会发生这种情况的想法?
答案 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";