我希望有人可以指出我正确的方向,我需要做什么。
我有一个mysql数据库,其中包含一个名为'StartDate'的日期值字段,其格式为'YYYY-MM-DD'。
所以,我使用 -
连接到数据库$results = $wpdb->get_results( "SELECT * FROM wp_myEventDates ORDER BY `StartDate` ASC" );
我想按月分组事件,例如6月有10个事件,7月有12个事件 -
我使用了foreach循环并测试了几种方法来输出日期并使用了var_dump,但我不确定如何操作结果。
示例一:
$event_id = $myevent->StartDate;
// var dump from event id gives me
string(10) "2013-04-04"
示例二:
$event_id = $myevent->StartDate;
$dateArray = getdate(strtotime($event_id));
$mythingmonth = array($dateArray['mon']);
foreach ($mythingmonth as $monthsplit =>$myvalue) {
var_dump($myvalue);
//var dump from myvalue this
int(4)
}
我100%肯定我会以错误的方式解决这个问题,我已经尝试过搜索和尝试但是我迷失了 - 所以如果有什么指针或建议可以看看,那就太棒了。
提前致谢。
答案 0 :(得分:0)
试试这个:
SELECT Month(startdate),count(id) as nrOfEvents
FROM wp_myEventDates
GROUP BY Month(startdate)
但是再次阅读你的问题,我不确定这是不是你想要的。你能描述一下预期的结果吗?
编辑:
如果您的活动持续数年,最好使用它:
SELECT Month(startdate),Year(startdate),count(id) as nrOfEvents
FROM wp_myEventDates
GROUP BY Month(startdate),Year(startdate)
答案 1 :(得分:0)
我对问题不是很清楚,但是如果你试图根据查询重新分组数据,我在这里有你的例子,
$event_id = array ("2013-04-04","2013-04-04","2013-05-04","2013-04-04","2013-06-04");
foreach($event_id as $value)
{
$value = explode('-',$value);
$month[$value[1]][] = 'hi'; // you can add ur event name here instead of 'hi'
}
var_dump($month);
vardump($ month)为您提供以下输出
array
'04' =>
array
0 => string 'hi' (length=2)
1 => string 'hi' (length=2)
2 => string 'hi' (length=2)
'05' =>
array
0 => string 'hi' (length=2)
'06' =>
array
0 => string 'hi' (length=2)
和vardump($ month ['04']);会给你以下结果
array
0 => string 'hi' (length=2)
1 => string 'hi' (length=2)
2 => string 'hi' (length=2)
而不是'hi'在foreach中可以添加作为查询结果的事件名称,您可以使用这种类型的数组按月收集事件