Как написать рекурсивный запрос MySql для структуры родительского меню

Название таблицы: ПУНКТ

+-----+--------+----------+--------------------+--------------------------------------------+
| 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, который будет возвращать количество элементов в каждом меню, включая количество элементов в его дочерних элементах?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]