使用连接显示PHP中类别下的所有页面

时间:2013-12-03 21:08:29

标签: php mysql sql join

我有2张桌子。第一个页面包含外键category_id,另一个表格类别包含id和title字段。

这是我的SQL查询:

SELECT categories.title as titleCategory, pages.title as titlePage FROM categories INNER JOIN pages ON pages.category_id = categories.id ORDER BY categories.title

想要的是显示如下页面和类别:

category 1
    page 1
    page 2

category 2
    page 1

etc...

有没有办法使用foreach或者我必须使用2个查询?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

只需检查一个foreach循环。

$currentCategory = null;
foreach( $results as $result ) {
     if( $currentCategory != $result['titleCategory'] ) {
          $currentCategory = $result['titleCategory'];
          echo $result['titleCategory'];
     }
     echo $result['titlePage'];
}

如果标题已更改,则仅打印出标题。你已经按照categoryTitle排序,所以如果类别没有改变,它只会打印pageTitle。

答案 1 :(得分:0)

假设PHP,但逻辑应该适用于任何语言。

$cur_cat = null;
foreach($results as $result){
    if($cur_cat != $result['titleCategory']){
        echo $result['titleCategory'];
    }
    $cur_cat = $result['titleCategory'];
    echo $result['titlePage'];
}