我有一个查询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; }
等打印查询。
如果有其他方法(查询?)获得相同的结果,我也很感兴趣。
答案 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回显两次。