Как выгрузить список разделов неограниченной вложенности из бд?
Есть такая таблица, где поле, которое имеет пустой parent_id является корневым. Поля, которые имеют parent_id = id.родительского раздела попадают в в этот родительский раздел и вложенность может быть бесконечной. Нужно выводить разделы как на 2 скриншоте (взял с яндекс почты).
Не понимаю даже за что браться, поэтому и решил обратиться за помощью, заранее спасибо!
Необходимо вывести данные как здесь:
Ответы (1 шт):
На правильный ответ не претендую, не хватает данных для тестирования. Но раз ваш список неограниченой вложености, то можно попробовать реализовать через рекурсию. Примерно, это будет выглядить так:
function rec($array = array()) {
foreach ($array as $value) {
$query = "SELECT parent_id as id FROM table where id = {$value['id']}";
$res = $conn->Execute($query);
while ($data = $res->FetchRow()) {
$result[] = $data;
}
if (is_array($result)) {
return $result[] = rec($result);
} else {
return;
}
}
}
$query = "SELECT id FROM table where parent_id IS NULL";
$res = $conn->Execute($query);
while ($data = $res->FetchRow()) {
$result[] = $data;
}
print_r(rec($result));
Оставлю ответ в общем, может кто поправит в случае ошибок с моей стороны.

