пытаясь получить данные mysql в два цикла while к json_output - PullRequest
0 голосов
/ 06 июня 2019

Привет я пытаюсь сделать два цикла 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));

Дело в том, что я продолжаю получать следующую ошибку:

Неустранимая ошибка: Невозможно использовать [] для чтения в C: \ wamp64 \ www \ algoritmo_pdi \ sunburst.php в строке 25

кто-нибудь может мне помочь?заранее спасибо!

1 Ответ

2 голосов
/ 06 июня 2019

Я думаю, что это неправильно:

'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
      ];

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...