php - 试图将mysql数据获取到json_output的两个while循环中
问题描述
嗨,我正在尝试进行两个 while 循环,以便能够正确分类我存储在数据库中的数据,然后将其 json_output
我的代码如下:
//verifica qual é o elemento pai
$sql1 = 'SELECT DISTINCT itempt_dim
FROM dim
WHERE id_dim = (
SELECT DISTINCT iddimblg_rdim
FROM rdim
WHERE iddimblg_rdim NOT IN (
SELECT iddim_rdim
FROM rdim
)
)';
$result1 = mysqli_query($con, $sql1);
while ($row = mysqli_fetch_array($result1)) {
$elem_pai = $row['itempt_dim'] ;
$grupo = [
'name' => $elem_pai,
'color' => $cor_alea,
'size' => 1,
'children' => $marcas[]
];
//query para obter os elementos filhos
$sql2 = "SELECT itempt_dim
FROM dim
WHERE id_dim = ANY (
SELECT DISTINCT iddim_rdim
FROM rdim
WHERE iddimblg_rdim = (
SELECT id_dim
FROM dim
WHERE itempt_dim = ". "'" . $elem_pai . "'" ."
)
)";
$result2 = mysqli_query($con, $sql2);
//verifica os elementos filhos
$marcas = [];
while ($row = mysqli_fetch_array($result2)) {
$marcas = [
'name' => $row['itempt_dim'],
'color' => $cor_alea,
'size' => 1
];
}
}
print_r(json_encode($grupo));
问题是我不断收到以下错误:
致命错误:无法使用 [] 读取第 25 行的 C:\wamp64\www\algoritmo_pdi\sunburst.php
有人能帮我吗 ?提前致谢!
解决方案
我认为这是错误的:
'children' => $marcas[]
这个覆盖每个循环
$marcas = [
'name' => $row['itempt_dim'],
'color' => $cor_alea,
'size' => 1
];
所以,更正的代码:
while ($row = mysqli_fetch_array($result1)) {
$elem_pai = $row['itempt_dim'] ;
$grupo = [
'name' => $elem_pai,
'color' => $cor_alea,
'size' => 1,
'children' => $marcas
];
//query para obter os elementos filhos
$sql2 = "SELECT itempt_dim FROM dim WHERE id_dim = ANY (SELECT DISTINCT iddim_rdim FROM rdim WHERE iddimblg_rdim = (SELECT id_dim FROM dim WHERE itempt_dim = ". "'" . $elem_pai . "'" ."))";
$result2 = mysqli_query($con, $sql2);
//verifica os elementos filhos
$marcas = [];
while ($row = mysqli_fetch_array($result2)) {
$marcas[] = [
'name' => $row['itempt_dim'],
'color' => $cor_alea,
'size' => 1
];
}
}
推荐阅读
- java - java - 如何在java中的int变量中采用空格分隔的整数输入?
- android - Flutter Android 启动器图标看起来很小
- java - 需要帮助延迟 javafx 应用程序
- assembly - 我对这个算术运算符感到困惑
- c# - 从文本中选择字母并将它们放入列表中
- r - 在这些数据集之间使用 R 进行深度学习导致 MAE 结果不同的原因可能是什么?
- react-native - 在 React Native 中处理刷新令牌
- python - ValueError:差异需要至少一维的输入
- node.js - 不能改变从猫鼬查询返回的对象吗?
- c++ - 唯一的 ptr 将所有权转移到包含对象的方法