我有 2 个数据库表:categories
和 sub_categories
。 sub_categories
表通过类别 ID cat_id
categories
表
在 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`
最佳答案
MySQL 不会返回一个数组,它只会返回行,但是您可以使用 php 轻松创建数组.. 只需这样做
<?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'];
}
?>
关于php - 来自mysql结果的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680209/