У меня есть SQL-таблица, содержащая идентификатор и внешний ключ, назначающий одну и ту же таблицу. Я использую это, чтобы управлять (суб) навигационными точками на веб-странице через PHP.
Получение бесконечных уровней субнавигаций
(page_id 6, конечно, должен иметь 5 для page_fs, жаль что опечатка)
Как вы можете видеть, если page_fs равен нулю, это верхний уровень, если нет, это субнавигация страницы с тем же идентификатором.
Что наиболее эффективный способ, чтобы получить список, как это, используя PHP:
Page 1
--Page 1,1
--Page 1,2
---- Страница 1.2.1
Page 2
--Page 2.1
Страница 3
Она должна поддерживать бесконечное количество слоев.
Спасибо за вашу помощь
Поскольку mysql не поддерживает CTE (общие выражения таблицы), тип рекурсивного запроса, который необходимо выполнить для создания структур меню на основе, по существу, плоской таблицы, становится очень сложным. Некоторые rdbms обладают встроенными способностями «рекурсивных» способностей, без этого вам нужно усложнить работу с sql. Читайте на CTE ~ https://www.google.co.uk/search?client=firefox&q=mysql+common+table+expressions#safe=off&q=mysql+recursive+common+table+expression – RamRaider
Благодарим вас за быстрый ответ. Извините, но я просто понял, что мой вопрос не был так хорошо объяснен. Мне не нужен SQL-запрос, но функция PHP. – Juggernaut