[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как написать рекурсию выбора данных с бд ?
Oggy
Здравствуйте. У меня в таблице хранятся категории. Каждая категория имеет под категорию. У каждой категории есть parent_id где хранится id категории к которой принадлежыт текущая категория.
Как написать метод с рекурсией чтобы мог возвращать дерево категорий(массив) ? Например так:

Главная категория
--под катугория
--под катугория
--под катугория
--под под катугория
--под под катугория
Главная категория
--под катугория
--под катугория
Oggy
если parent_id ноль то ето рутовая категория(имеет подкатегории)
vagrand
Oggy
Выбери все данные одним запросом с сортировкой по parent_id, а замет в рекурсивной функции создавай вложенный массив.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
AllesKlar
Можно в OSCommerse посмотреть, так именно этот принцип хранения категорий

_____________
[продано копирайтерам]
dr.nomore
Запросом никак или гемор с процедурами и другими заморочками в рамках mysql

В скрипте как и обозначено - рекурсией.

Впрочем если глубина известна заранее то заранее известным количеством left join с алиасом таблицы можно получить типа чето.
Alex_57_php
В этой теме посмотри
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.