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]   

> Без описания
krolik
Отправлено: 06 Мая, 2011 - 00:08:29
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2011  


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




пример:
1
-1.2
2
-2.2
--2.3 --> ссылка вида site.ru/qwerty/qaz/qsc/

вот код
PHP:
скопировать код в буфер обмена
  1.  
  2. //Делаем выборку из базы данных
  3.  
  4. $result=mysql_query("SELECT * FROM menu WHERE menu_shw='1' and menu_site_shw='1' and menu_var='1' order by menu_rang, menu_id ASC");
  5.  
  6. //Если в базе есть записи идем дальше
  7.  
  8.  if   (mysql_num_rows($result) > 0){
  9.  
  10.  $cats = array();
  11.  
  12.  //В цикле  формируем массив категорий в качестве
  13.  // ключа которого выступает  id родительского раздела
  14.  
  15.  while($cat =  mysql_fetch_assoc($result))
  16.        $cats[$cat['menu_parent_id']][] =  $cat;
  17.  
  18.  }    
  19. function  build_tree($cats,$parent_id){
  20.  
  21.  if(is_array($cats) and isset($cats[$parent_id])){
  22.  
  23.    $tree = "<ul id='my-menu' class='sample-menu'>";
  24.  
  25.    foreach($cats[$parent_id] as $cat){
  26.  
  27.       $tree .= "<li>";
  28.      
  29.      $tree .= "<a href='/";
  30.      
  31.       $tree .= $cat['menu_translit']."'>". $cat['menu_name']."</a>";
  32.  
  33.       $tree .=  build_tree($cats,$cat['menu_id']);
  34.  
  35.       $tree .= '</li>';        
  36.  
  37.    }
  38.  
  39.    $tree .= '</ul>';
  40.  
  41.  }
  42.  else return null;          
  43.  
  44.  return $tree;        
  45. }      
  46. echo build_tree($cats,0);
 
 Top
Homer
Отправлено: 06 Мая, 2011 - 09:41:19
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2011  


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




проще реализовать рекурсивной функцией
http://www[dot]codenet[dot]ru/webmast/php/tree.php
 
 Top
krolik
Отправлено: 06 Мая, 2011 - 10:59:13
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2011  


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




Homer пишет:
проще реализовать рекурсивной функцией
http://www.codenet.ru/webmast/php/tree.php

Огорчение нет уж спасибо, эта инфа стара как мир + посчитайте сколько запросов к базе используется.
Раньше у меня было нечто подобное и код был оптимизирован только так же не было полного адреса до конечной страницы
 
 Top
Stierus Супермодератор
Отправлено: 06 Мая, 2011 - 12:55:15
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




"проще реализовать рекурсивной функцией" она уже рекурсивна Улыбка
 
My status
 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