我有2个数据库表:categories
和sub_categories
。 sub_categories
表已按类别categories
cat_id
表
在php中我想打印父类别和属于它的所有子类别。是否可以通过从 1 mysql查询创建多维数组来实现?
示例结果:
array
(
"Category 1"=>array
(
"Sub-category",
"Sub-category",
"Sub-category"
),
"Category 2"=>array
(
"Sub-category"
),
"Category 3"=>array
(
"Sub-category",
"Sub-category",
"Sub-category"
)
);
我的查询只为每个类别返回1个子类别:
SELECT `categories`.`cat_title`, `sub_categories`.`sub_cat_title`
FROM (`categories`)
LEFT JOIN `sub_categories`
ON `sub_categories`.`cat_id` = `categories`.`cat_id`
GROUP BY `categories`.`cat_title`
答案 0 :(得分:3)
<?php
$db = new mysqli('host','user','password','database');
$query = "SELECT c.cat_title, s.sub_cat_title
FROM categories c
LEFT JOIN sub_categories s USING (cat_id)
ORDER BY cat_title";
$result = $db->query($query);
while($row = $result->fetch_assoc()){
$cats[$row['cat_title']][] = $row['sub_cat_title'];
}
?>
答案 1 :(得分:1)
请尝试使用ORDER BY。
ORDER BY `categories`.`cat_title`, `sub_categories`.`sub_cat_title`