Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите создать функцию наполнения сложного массива из БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
дусрукп
Отправлено: 30 Апреля, 2014 - 14:03:06
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `divs` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `id_parent` int(11) NOT NULL,
  4.   `name` varchar(255) NOT NULL,
  5.   `type` varchar(22) NOT NULL,
  6.   `lang` int(1) NOT NULL DEFAULT '1',
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
  9.  
  10. INSERT INTO `divs` (`id`, `id_parent`, `name`, `type`, `lang`) VALUES
  11. (1, 0, 'Главная', '1', 1),
  12. (3, 0, 'Новости', '2', 1),
  13. (4, 0, 'О компании', '1', 1),
  14. (5, 0, 'Клиенты', '1', 1),
  15. (6, 0, 'Контакты', '1', 1),
  16. (10, 4, 'История', '1', 1),
  17. (11, 4, 'Учредители', '1', 1),
  18. (24, 10, 'Начало', '1', 1),
  19. (25, 10, 'Середина', '1', 1),
  20. (26, 10, 'Конец', '1', 1);


Необходимо сделать функцию, которая создает массив вида

PHP:
скопировать код в буфер обмена
  1. (
  2.       [0] => Array
  3.         (
  4.             [id] => 1
  5.             [id_parent] => 0
  6.             [name] => Главная
  7.             [type] => 1
  8.             [lang] => 1
  9.         )
  10.  
  11.       [1] => Array
  12.         (
  13.             [id] => 3
  14.             [id_parent] => 0
  15.             [name] => Новости
  16.             [type] => 1
  17.             [lang] => 1
  18.         )
  19.        
  20.       [2] => Array
  21.         (
  22.             [id] => 4
  23.             [id_parent] => 0
  24.             [name] => О компании
  25.             [type] => 1
  26.             [lang] => 1
  27.             [parent] => Array
  28.                     (
  29.                           [0] => Array
  30.                         (
  31.                               [id] => 10
  32.                             [id_parent] => 4
  33.                             [name] => История
  34.                             [type] => 1
  35.                             [lang] => 1
  36.                             [parent] => Array
  37.                                           (
  38.                                                 [0] => Array
  39.                                             (
  40.                                                   [id] => 24
  41.                                                   [id_parent] => 10
  42.                                                   [name] => Начало
  43.                                                   [type] => 1
  44.                                                   [lang] => 1
  45.                                             )
  46.                                
  47.                                             [1] => Array
  48.                                             (
  49.                                                   [id] => 25
  50.                                                   [id_parent] => 10
  51.                                                   [name] => Середина
  52.                                                   [type] => 1
  53.                                                   [lang] => 1
  54.                                             )
  55.                                            
  56.                                             [2] => Array
  57.                                             (
  58.                                                   [id] => 26
  59.                                                   [id_parent] => 10
  60.                                                   [name] => Конец
  61.                                                   [type] => 1
  62.                                                   [lang] => 1
  63.                                             )
  64.                                           )
  65.                         )
  66.            
  67.                         [1] => Array
  68.                         (
  69.                               [id] => 11
  70.                             [id_parent] => 4
  71.                             [name] => Учредители
  72.                             [type] => 1
  73.                             [lang] => 1
  74.                         )
  75.                     )
  76.                  
  77.         )
  78.         [3] => Array
  79.         (
  80.             [id] => 5
  81.             [id_parent] => 0
  82.             [name] => Контакты
  83.             [type] => 1
  84.             [lang] => 1
  85.         )
  86.  
  87. )


Притом база может быть любого уровня вложенности. Помогите, не могу сделать...
 
 Top
DlTA
Отправлено: 30 Апреля, 2014 - 14:34:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




1) получаем список/массив всех элементов
2) формируем дерево
Спойлер (Отобразить)

(Добавление)
DlTA пишет:
2) формируем дерево
там кстати есть одна не очень хорошая вещь, если будут кольца/петли при связывании, то все кольцо выпадет из дерева, и вероятность найти его потом очень мала

(Отредактировано автором: 30 Апреля, 2014 - 14:35:10)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB