我在数据库中得到了下表
- ID | successor
- 01 | 02
- 01 | 04
- 01 | 08
- 02 | 03
- 04 | 05
- 05 | 06
这只是电子学习系统内容的简单分配表(这是正确的英语术语吗?)。
我当前的php代码是这样
$sqlget = "SELECT * from successor";
$result = $conn->query($sqlget);
$dbsuccessor = [];
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$dbsuccessor[] = $row;
}
} else {
echo "0 results";
}
用json_encode将其解析为js后,我得到了一个没有用的结构
var successors = <?php echo json_encode($dbsuccessor);?>;
console.log(successor);
数组[9]
0:
对象ID:“ 1”-后继对象:“ 2”
1:
对象ID:“ 1”-后继对象:“ 4”
2:
对象ID:“ 1”-后继对象:“ 8”
公平地讲,这显然正是您对上面使用我的代码所期望的。
我的目标是这样的数组输出:
ID:“ 1”->后继“ 2”,“ 4”,“ 8”
这样我可以在输入console.log(successors[1]);
javascript时看到ID为1的模块的所有后继产品
最好的事情是,如果我的数据库表保持原样。我如何实现我的目标?
使用Group_concat()实现此目的
将查询更改为
$sqlget = "SELECT ID,group_concat(successor) from successor group by ID";
$result = $conn->query($sqlget);
$dbsuccessor = [];
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$dbsuccessor[] = $row;
}
} else {
echo "0 results";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句