Изграждане на йерархично дърво
- id - първичен ключ на таблицата:
- parent_id - идентификатор на родителския раздел
- име – име на раздел
За да създадете такава таблица, трябва да изпълните следнатаSQL заявка:
Ето как трябва да изглежда попълнената таблица:
И така, разбрахме базата данни! Сега да преминем към формирането на самото дърво.
И тукначинаещите програмистимного често правят една много сериозна грешка! Те са в цикъл, правят заявки към базата данни и по този начин натоварват много силно сървъра! Добре е базата да съдържа три раздела, но представете си базата на някой нормален онлайн магазин, в който има 10 раздела и всеки раздел има още 10 подраздела, а те от своя страна имат свои подраздели! А сега изчислете колко заявки към базата данни трябва да бъдат направени, за да се формира такова дърво.Този подход е неприемлив! Запомнете това веднъж завинаги.
Ще ви покажа как да изградите дърво с произволно влагане на два етапа, като използвате една заявка към базата данни!
На първия етап ще направим само една заявка към базата данни и ще подготвим данните в удобен за нас вид!
Както можете да видите от примера, ние сме избрали всички записи от таблицатаcategoriesи ако има поне един запис, тогава формираме асоциативен масив$cats, чийто ключ е id на родителската секция.
И така, данните за формирането на дървото са готови. Сега нека изградим самото дърво. За целта ще използвамерекурсивната функция.
Нашето йерархично дърво ще има следната структура:
Нека създадем рекурсивна функцияbuild_tree(),който ще изгради йерархично дърво на всяко гнездене.
Толкова е просто, само в две стъпки можете да създадете йерархично дърво на всяко гнездене!