Изграждане на йерархично дърво

  1. id - първичен ключ на таблицата:
  2. parent_id - идентификатор на родителския раздел
  3. име – име на раздел

За да създадете такава таблица, трябва да изпълните следнатаSQL заявка:

Ето как трябва да изглежда попълнената таблица:

дърво

И така, разбрахме базата данни! Сега да преминем към формирането на самото дърво.

И тукначинаещите програмистимного често правят една много сериозна грешка! Те са в цикъл, правят заявки към базата данни и по този начин натоварват много силно сървъра! Добре е базата да съдържа три раздела, но представете си базата на някой нормален онлайн магазин, в който има 10 раздела и всеки раздел има още 10 подраздела, а те от своя страна имат свои подраздели! А сега изчислете колко заявки към базата данни трябва да бъдат направени, за да се формира такова дърво.Този подход е неприемлив! Запомнете това веднъж завинаги.

Ще ви покажа как да изградите дърво с произволно влагане на два етапа, като използвате една заявка към базата данни!

На първия етап ще направим само една заявка към базата данни и ще подготвим данните в удобен за нас вид!

Както можете да видите от примера, ние сме избрали всички записи от таблицатаcategoriesи ако има поне един запис, тогава формираме асоциативен масив$cats, чийто ключ е id на родителската секция.

И така, данните за формирането на дървото са готови. Сега нека изградим самото дърво. За целта ще използвамерекурсивната функция.

Нашето йерархично дърво ще има следната структура:

Нека създадем рекурсивна функцияbuild_tree(),който ще изгради йерархично дърво на всяко гнездене.

Толкова е просто, само в две стъпки можете да създадете йерархично дърво на всяко гнездене!