Добрый день, есть БД, в которой есть поля id (primary), fio, position (начиная от Генерального директора, заканчивая джуниором. Всего пять уровней иерархии - General, ProjectManager, TeamLead, Senior, Middle, Junior), date, salary, id_chiefs (id начальника). Необходимо вывести на экран список сотрудников в виде дерева. Т. е. у каждого человека есть конкретный начальник, который определяется по полю id_chiefs. id General равняется 123456789 Я в PHP новичек, поэтому мозгов хватило только на это (но я понимаю, что так неправильно, работает долго). Подскажите более лаконичное и оптимальное решение. Буду очень благодарен. PHP: <?php require_once 'function.php'; $conn = connectToDb(); $sql = "SELECT * FROM `abz`"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row $base = array( 'id' => array(), 'fio' => array(), 'position' => array(), 'date' => array(), 'salary' => array(), 'id_chiefs' => array(), ); while($row = $result->fetch_assoc()) { $base['id'][$row['id']] = $row['id']; $base['fio'][$row['id']] = $row['fio']; $base['position'][$row['id']] = $row['position']; $base['date'][$row['id']] = $row['date']; $base['salary'][$row['id']] = $row['salary']; $base['id_chiefs'][$row['id']] = $row['id_chiefs']; } } else { echo "0 results"; } echo '<div>' . $base['fio'][123456789].'<br>' . $base['position'][123456789].'<br></div>'; for ($i = 1; $i < 1001; $i++){ if ($base['position'][$i] == 'ProjectManager'){ echo '<div id_num='.$base['id'][$i].'" class="projectManager">' . $base['fio'][$i].'<br>' . $base['position'][$i].'<br></div>'; for ($j = 1; $j < 1001; $j++){ if ($base['position'][$j] == 'TeamLead' and $base['id_chiefs'][$j] == $base['id'][$i]){ echo '<div id_num='.$base['id'][$j].'" class="teamLead">' . $base['fio'][$j].'<br>' . $base['position'][$j].'<br></div>'; for ($k = 1; $k < 1001; $k++){ if ($base['position'][$k] == 'Senior' and $base['id_chiefs'][$k] == $base['id'][$j]){ echo '<div id_num='.$base['id'][$k].'" class="senior">' . $base['fio'][$k].'<br>' . $base['position'][$k].'<br></div>'; for ($l = 1; $l < 1001; $l++){ if ($base['position'][$l] == 'Middle' and $base['id_chiefs'][$l] == $base['id'][$k]){ echo '<div id_num='.$base['id'][$l].'" class="middle">' . $base['fio'][$l].'<br>' . $base['position'][$l].'<br></div>'; } for ($s = 1; $s < 1001; $s++){ if ($base['position'][$s] == 'Junior' and $base['id_chiefs'][$s] == $base['id'][$l]){ echo '<div id_num='.$base['id'][$s].'" class="junior">' . $base['fio'][$s].'<br>' . $base['position'][$s].'<br></div>'; } } } } } } } } } mysqli_close($conn); ?>