每个id一次回声类别名称

时间:2013-05-02 14:07:38

标签: php mysql

我有一个查询SELECT id, title, imagename FROM cat JOIN images ON id=id 我想每个类别只回显一次标题,然后是3个图像。然后与下一个类别相同。

表格布局:

Cat Table
id title

Images Table
id imagename

最终结果应如下所示:

Title

Imagename Imagename Imagename

Title

Imagename Imagename Imagename

使用foreach循环作为对象($this->results as $result ) { echo $result->title; }等打印查询。

如果有其他方法(查询?)获得相同的结果,我也很感兴趣。

2 个答案:

答案 0 :(得分:0)

您需要跟踪当前标题,并且仅在与当前标题不同时回显标题:

$title = '';
// loop
  ...
  if ($result->title !== $title)
  {
    echo $result->title;
    $title = $result->title;
  }
  ...
// end loop

请注意,您需要在查询中ORDER BY title,因为如果不这样做,您可以稍后再次获得相同的标题。

答案 1 :(得分:0)

您可以添加$prevTitle之类的变量,如果当前标题与之前的标题匹配,请不要回显它。这将确保只回显新标题,并且只回显一次。当然,这意味着你的对象必须按标题排序/分组,以免得到像

这样的结果
  

TITLE1

     

TITLE1

     

TITLE2

     

TITLE1

因为这会使标题1回显两次。