Древовидное меню - 4 уровня - PullRequest
0 голосов
/ 01 мая 2011

У меня на сайте 4 уровня структуры меню: разделы (в разделах tabel), категории (в tabels категорий, с section_id, указывающим на разделы) и затем страницы (на страницах tabel у меня есть parent_id, потому что страница может быть фактически дочерней по отношению к другой странице, а также каждая страница принадлежит разделу).

Как я могу построить меню? (Я использую PHP и MySQL) Сейчас я использую 4 вложенных запроса. Сначала я выбираю все разделы, затем для каждого раздела я выбираю все категории, а для всех категорий я выбираю страницы без родителя, а затем для каждой страницы я выбираю дочерние страницы.

Также я могу использовать только один запрос (с RIGHT JOIN), чтобы получить массив с section_id, category_id, page_id, parent_id. Но я не знаю, как преобразовать этот массив в массив деревьев.

1 Ответ

0 голосов
/ 01 мая 2011

Используйте этот класс для преобразования вашего запроса в массив деревьев.

Пример использования.

Это так просто, как:

$sql_query = "SELECT field1, field2 FROM table WHERE field3='val1' AND field4=5 OR field5='val2';";

$query2tree = new dqml2tree($sql_query);
$sql_tree = $query2tree->make();

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