Цикл запроса mysql php

101
06 мая 2021, 07:30

Подскажите пожалуйста, есть такой массив:

var treeData = [
    <?php
          $stmt_one = $pdo->query("SELECT * FROM dolzhnosti WHERE pod='0'");
while ($row_one = $stmt_one->fetch()) {
    ?>
  {
    "name": "<?php echo $row_one['name'];?>",
    "parent": "null",
    "children": [
          <?php
          $stmt_two = $pdo->query("SELECT * FROM dolzhnosti WHERE pod='".$row_one['id']."'");
while ($row_two = $stmt_two->fetch()) {
    ?>
    {
        "name": "<?php echo $row_two['name'];?>",
        "parent": "<?php echo $row_one['name'];?>",
      },
      <?php } ?>
    ]
  },
  <?php } ?>
];

Есть таблица

+-----+-------+-----+
| id  | name  | pod |
+-----+-------+-----+
|  1  | Name1 |  0  |
|  2  | Name2 |  1  |   
|  3  | Name3 |  2  |   
|  4  | Name4 |  3  |
|  5  | Name5 |  4  |
+-----+--------+----+

Как вывести все должности которые подчиняются друг другу, т.к. Name2 подчиняется Name1. Пока смог вывести только один уровень.

Answer 1

В принципе можно сделать так одним запросом:

select d1.id, d1.name as boss, d2.name as podcheneny
from dolzhnosti d1
left join dolzhnosti d2
on d2.pod=d1.id

Лучше всего хранить данные в виде array или json, смотря какая задача.

Answer 2

Если нужно вывести только 1 уровень и 2 уровень, то ответ mepihindeveloper верный. Если нужно вывести несколько, то делаете тот же самый запрос и уже в PHP строите многоуровневую структуру.

READ ALSO
Регулярное выражение с цифрами, буквами и знаками припенания

Регулярное выражение с цифрами, буквами и знаками припенания

Регулярные выражения для меня - что-то далекое и неизведанноеНе могу сейчас сесть изучать, т

76
вхождение IP в подсеть CIDR

вхождение IP в подсеть CIDR

есть файл cidrtxt :

106
ООП в Java. Относится ли абстракция к принципам ООП?

ООП в Java. Относится ли абстракция к принципам ООП?

Хотел спросить, относится ли абстракция к принципам ООП? Почему на некоторых ресурсах только: наследование, инкапсуляция, полиморфизм?

92
Curved Bottom Navigation

Curved Bottom Navigation

Я делаю меню по этому видеоИ проект на Гитхаб

80