[英]Display all pages under categories in PHP with joins
我有2張桌子。 第一個頁面包含一個外鍵category_id,另一個表類別包含一個id和標題字段。
這是我的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個查詢?
非常感謝您的幫助。
只需在單個foreach循環中進行檢查即可。
$currentCategory = null;
foreach( $results as $result ) {
if( $currentCategory != $result['titleCategory'] ) {
$currentCategory = $result['titleCategory'];
echo $result['titleCategory'];
}
echo $result['titlePage'];
}
如果標題已更改,則只會打印出標題。 您已經有按categoryTitle排序的,因此,如果類別不變,則僅打印pageTitle。
假設使用PHP,但是邏輯代碼可以在任何語言中工作。
$cur_cat = null;
foreach($results as $result){
if($cur_cat != $result['titleCategory']){
echo $result['titleCategory'];
}
$cur_cat = $result['titleCategory'];
echo $result['titlePage'];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.