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]   

> Без описания
SAD
Отправлено: 27 Октября, 2010 - 00:11:12
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




собственно есть три таблицы: курс, тема, подтема
таблица kurs
id_kurs
name

таблица theme
id_theme
name
id_kurs

таблица subtheme
id_subtheme
name
id_theme

нужно построить дерево на <ul> и <li>
я нашел только как строить дерево, если одна таблица, а там вся информация о вложенности и т.д., но у меня так
 
 Top
movEAX
Отправлено: 27 Октября, 2010 - 08:48:45
Post Id



Частый посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. [...]
  2. $tree = '<ul>';
  3. if ( $kurs = $mysqli->query( 'SELECT * FROM kurs' ) ) {
  4.     while ( $objKurs = $kurs->fetch_object() ) {
  5.         $tree.='<li>'.$objKurs->name.'<ul>';
  6.         if ( $themes = $mysqli->query( 'SELECT * FROM theme WHERE id_kurs = '.$objKurs->id_kurs ) ) {
  7.             while ( $objTheme = $themes->fetch_object() ) {
  8.                 $tree.='<li>'.$objTheme->name.'<ul>';
  9.                 if ( $subthemes = $mysqli->query( 'SELECT * FROM subtheme WHERE id_theme = '.$objTheme->id_theme ) ) {
  10.                     while ( $objStheme = $subthemes->fetch_object() ) {
  11.                         $tree.='<li>'.$objStheme->name.'</li>';
  12.                     }
  13.                     $objStheme->close();
  14.                 }
  15.             }
  16.             $themes->close();
  17.             $tree.='</ul>';
  18.         }
  19.     }
  20.     $objKurs->close();
  21.     $tree.='</ul>';
  22. }
  23. $result->close();
  24. $tree.='</ul>';
  25. $mysqli->close();


Вроде должно работать) Но лучше организовать рекурсию


-----
армия.. самое убогое место
 
 Top
SAD
Отправлено: 27 Октября, 2010 - 09:38:19
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




спасибо, попробую потом)
 
 Top
JustUserR
Отправлено: 27 Октября, 2010 - 12:11:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




movEAX пишет:
Вроде должно работать) Но лучше организовать рекурсию
В качестве возможного варианта для эфффективной организации рекурсивных алгоритмов возможно использование специальной схемы линеаризации - применение которой обеспечивает выполнение идентичнго алгоритма в пределах цикла и отсутствием потенциального переполенния стека вызовов при ошибочной или объемной информации - а также возможност оптимизации алгоритма
Информация по данному вопросу представлена [url]здесьhttp://www.languagec.info/rekursia1.php[/url]


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
SAD
Отправлено: 28 Октября, 2010 - 01:35:13
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB