Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从sql查询中显示一个标题和多个日期_Php_Sql - Fatal编程技术网

Php 从sql查询中显示一个标题和多个日期

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和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' 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分才能做到这一点:-/并且不确定如何将你的答案标记为正确答案。。。