1

新的 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>");

这将产生 A 类名称开始日期 1 A 类名称开始日期 2 B 类名称开始日期 1 B 类名称开始日期 2

我想要的是 A 类的名称 开始日期 1 开始日期 2

B 类名称 开始日期 1 开始日期 2

我知道我需要一个数组并定义行 - 尝试了几个选项但没有运气。不理解此答案中定义的所有变量等(这似乎是我想要做的)

在档案循环中仅显示一次

非常感谢任何帮助!甚至是正确方向的一点;-)

4

1 回答 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/>'); 
}

这只会打印event_name一次 new ,我认为这是你想要的。

于 2012-10-24T21:18:25.497 回答