【发布时间】:2019-12-03 09:40:35
【问题描述】:
我有 2 个表想要调用并从中创建另一个数组。 第一个表是groups
| id | name | type |
1 premium pr
2 basic bs
第二个表是子组
| id | group_id | name |
1 1 forever
2 2 short
其实我想展示这样的代码。让另一个数组函数声明为子组
Array (
[id] => 1
[name] => Premium
[type] => pr
)[sub-groups] => Array (
[0] => Array (
[id] => 1
[group_id] => 1
[name] => forever))
我创建了这个 PDO sql 连接
=================编辑代码====================
function getGroups(){
global $conn;
$stmt = $conn->prepare("SELECT * FROM groups");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$groups = $stmt->fetchAll();
foreach($groups as $key => $val){
$stmt = $conn->prepare("SELECT * FROM sub_groups WHERE group_id = {$val['id']}");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$program = $stmt->fetchAll();
foreach($program as $key => $val){
$groups['sub-groups'] = $program;
}
}
return $groups;
}
代码成功显示组 Premium 和 Basic,但未显示主要组内的 子组。我错过了什么? 任何有帮助的人都会很好。
【问题讨论】:
-
子组与子减组相同
-
对不起,我听不懂你的意思
-
LEFT JOIN sub-groups与LEFT JOIN sub MINUS groups相同 -
您将不得不为具有相同名称的 2 列别名,即 2
name列 -
我希望输出有一个以键为名称的数组。 Array ([id] => 1 [name] => Premium [type] => pr [sub-groups] => Array ([id] => 1 [group_id] => 1 [name] => forever ))
标签: mysql arrays nested declare