我有一个查询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; }
等来打印查询。
我也很感兴趣,如果有其他的方式(查询?)获得相同的结果。
您需要跟踪当前标题,并且只在标题与当前标题不同时才返回标题:
$title = '';
// loop
...
if ($result->title !== $title)
{
echo $result->title;
$title = $result->title;
}
...
// end loop
请注意,您确实需要在您的查询ORDER BY title
,因为如果您不这样做,您可以在以后再次获得相同的标题。
您可以添加像$prevTitle
这样的变量,如果当前标题与前一个标题匹配,则不回显它。这将确保只有新标题会被回应,而且只有一次。当然,这意味着你的对象必须按照标题进行排序/分组,以避免出现
title1
title1
title2
title1
因为那样会重复两次标题1