Php 从sql查询中显示一个标题和多个日期
sql和php新手,正在尝试解决这个问题。在阅读了这里的几个例子之后,我似乎仍然无法完成这项工作。现在我有以下问题Php 从sql查询中显示一个标题和多个日期,php,sql,Php,Sql,sql和php新手,正在尝试解决这个问题。在阅读了这里的几个例子之后,我似乎仍然无法完成这项工作。现在我有以下问题 $sql = "SELECT e.id, e.event_name, e.recurrence_id, e.start_date, e.venue_title FROM " . wp_events_detail . " e WHERE e.recurrence_id <>0 or e.recurrence_id = 0 and is_active = 'Y' GROU
$sql = "SELECT e.id, e.event_name, e.recurrence_id, e.start_date, e.venue_title FROM " . wp_events_detail . " e WHERE e.recurrence_id <>0 or e.recurrence_id = 0 and is_active = 'Y' GROUP BY e.event_name, e.start_date" ;
$posts = $wpdb->get_results($sql);
print("<ul>");
foreach ($posts as $post)
{
print('<li>'.$post->event_name.'|'.$post->event_desc.'<br/>');
print('</li>');
print($post->start_date. '~' .$post->venue_title.'<br/>');
}
print("</ul>");
$sql=“从中选择e.id、e.event\u name、e.recurrence\u id、e.start\u date、e.vention\u title”。wp_事件_详情。“e其中e.recurrence\u id 0或e.recurrence\u id=0且处于活动状态='Y'组,按e.event\u名称、e.start\u日期排列”;
$posts=$wpdb->get_结果($sql);
打印();
foreach($posts作为$post)
{
打印(“- ”.$post->event_name.|“.$post->event_desc.
”);
打印(“ ”);
打印($post->start_date.~'.$post->vention_title.
);
}
打印(“
”);
这就产生了
甲级学校名称
开始日期1
甲级学校名称
开始日期2
B类的名称
开始日期1
B类的名称
开始日期2
我想要的是
甲级学校名称
开始日期1
开始日期2
B类的名称
开始日期1
开始日期2
我知道我需要一个数组和定义行-我尝试了几个选项,但没有成功。不理解这个答案中定义的所有变量等(这似乎是我想要做的)
非常感谢您的帮助!即使是方向正确的点;-) 您可以将for循环调整为:
$lastseeneventname='';
foreach ($posts as $post){
if($lastseeneventname!=$post->event_name){
print('<li>'.$post->event_name.'|'.$post->event_desc.'<br/>');
print('</li>');
$lastseeneventname=$post->event_name;
}
print($post->start_date. '~' .$post->venue_title.'<br/>');
}
$lastseeneventname='';
foreach($posts作为$post){
如果($lastseeneventname!=$post->event\u name){
打印(“”.$post->event_name.|“.$post->event_desc.
”);
打印(“ ”);
$lastseeneventname=$post->event\u name;
}
打印($post->start_date.~'.$post->vention_title.
);
}
这将只打印一次新的
event\u name
s,我想这是您想要的。您可能需要澄清您正在使用的数据库(我假设是MySQL?)是的。SQL数据库-在WordPress上为输入设置运行事件EspressoTanks。我只需要一次事件名称-我可以在recurrence.id上使用GROUP BY。但在每个事件名称下,我想知道该事件的每个实例的日期。i、 e.事件名称2012年10月25日2012年11月7日等如果不知道您的sql结构,我想我的答案就是这样。或者,您可以执行一个groupby
循环,然后针对每个事件名称查询该事件的所有日期。这将是更多的查询,因此技术上更慢。天哪-错过了底部的日期部分-完美的解决方案谢谢!太好了,如果你高兴,请考虑我的回答,选择它作为正确的答案。谢谢Landon,试图对你的答案进行投票-它告诉我我至少需要15分才能做到这一点:-/并且不确定如何将你的答案标记为正确答案。。。