Название таблицы: ПУНКТ
+-----+--------+----------+--------------------+--------------------------------------------+ | id | родитель | категория | заголовок | имя | + ----- + -------- + ---------- + -------------------- + - ------------------------------------------ + | 228 | 0 | 0 | Сайт | | | 233 | 0 | 0 | Поисковая система | | | 245 | 228 | 0 | Дополнительные функции | | | 234 | 0 | 0 | Домен и Хостинг | | | 232 | 0 | 0 | Дизайн | | | 411 | 0 | 232 | | Дизайн логотипа | | 412 | 0 | 233 | | Поисковая оптимизация (SEO) - Ежемесячно | | 413 | 0 | 233 | | Маркетинг в поисковых системах (SEM) | | 414 | 0 | 245 | | Блог | | 415 | 0 | 245 | | Информационный бюллетень | | 416 | 0 | 245 | | Фавикон | | 410 | 0 | 228 | | Корзина покупок | | 409 | 0 | 228 | | Back End (CMS) | | 408 | 0 | 228 | | Передний конец | | 422 | 0 | 234 | | SSL-сертификат | | 421 | 0 | 245 | | Платежный шлюз | | 420 | 0 | 234 | | Выделенный IP | | 419 | 0 | 234 | | Хостинг - Ежегодно | | 418 | 0 | 234 | | Доменное имя | | 417 | 0 | 245 | | Несколько языков | | 864 | 0 | 865 | | Новый | + ----- + -------- + ---------- + -------------------- + - ------------------------------------------ +
-Я создал меню, которое выглядит так:
Веб-сайт () Дополнительные особенности () Дизайн () Поисковый движок () Домен и хостинг ()
-В скобках я хотел бы добавить количество элементов в категории, ВКЛЮЧАЯ дочерние элементы
-Так, например, «Веб-сайт» должен 8 пунктов (3 + 5 из «Дополнительные функции»)
-Поскольку количество уровней / родителей не ограничено, мне нужен рекурсивный запрос, чтобы получить это число.
-Дерево в настоящее время функционирует нормально и его можно увидеть здесь: https://www.mekoowebdesign.com.au/cart/
ВОПРОС
-Как мне написать рекурсивный запрос MySQL, который будет возвращать количество элементов в каждом меню, включая количество элементов в его дочерних элементах?
Задача ещё не решена.
Других решений пока нет …