Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: вывод каталог и подкаталогов

Сообщения:  [1-10]   [11-20] 

 
 автор: oradev   (16.11.2007 в 14:53)   письмо автору
 
   для: Dizels   (15.11.2007 в 11:59)
 

Ну, если не понимаете делайте без рекурсии, как вы и пытались. В этом случаи у вас будут два вложенных цикла.

   
 
 автор: sim5   (15.11.2007 в 12:15)   письмо автору
 
   для: Dizels   (15.11.2007 в 11:59)
 

Функция, которую я привел, и вернет вам массив дерева каталогов с учетом их вложения. Если вы будете из базы брать три параметра каталога, как в примере: id, название, родителя, то четвертым параметром для каталога в массиве добавляется уровень его вложения ($row[3] = $level) - для корневого это будет 0, для последующего 1, 2, 3... и т.д.
Чтобы построить то, что вы привели по ссылке, этого вполне достаточно.

   
 
 автор: Dizels   (15.11.2007 в 11:59)   письмо автору
 
   для: sim5   (09.11.2007 в 06:08)
 

Может я не совсем понятно объяснил, а может чего не понял в функции которую написал sim5.
Мне нужно, чтобы при заходе на сайт(index.php) отображались главные каталоги (у которых id_parent=0) и их подкаталоги (1 вложенности). Чтобы более понятно было - посмотрите на каталог Яндекса http://yaca.yandex.ru/.

Как мне вот такое реализовать?

   
 
 автор: sim5   (09.11.2007 в 06:08)   письмо автору
 
   для: Dizels   (08.11.2007 в 22:42)
 

Рекурсивный вызов, но только почитайте сообщения от oradev, чем это грозит при большой вложенности.

<?
function listCatalog($parent,$level) {
$q mysql_query("SELECT id, name, parent, ... FROM tableName WHERE id<>0 and parent=$parent ORDER BY fieldName") or die (mysql_error());
$a = array();
  while (
$row mysql_fetch_row($q)) {
    
$row[3] = $level;
    
$a[] = $row;
    
$b listCatalog($row[0],$level+1);
    
$a array_merge($a$b);
  }
 return 
$a;
}
$categories listCatalog(0,0);
?>

   
 
 автор: Dizels   (08.11.2007 в 22:42)   письмо автору
 
   для: sim5   (06.11.2007 в 18:24)
 


Например, если все каталоги в одной таблице, то paret = 0 обычно означает корневой каталог, в противном случае parent указывает на калог родителя.

Да так!

товары может иметь только самый нижний каталог, а его родители могут содержать только подкаталоги - это условие соотвествует вашему?

Нет, товар может содержаться не только в самых нижних каталогах, а и на "родителях".

   
 
 автор: oradev   (08.11.2007 в 14:23)   письмо автору
 
   для: sim5   (08.11.2007 в 11:30)
 

Я подбросил идею, а дальше автору решать ...

   
 
 автор: sim5   (08.11.2007 в 11:30)   письмо автору
 
   для: oradev   (08.11.2007 в 10:31)
 

Ну да, тока чет не верится, что у автора 50000 эелементов будет :)

   
 
 автор: oradev   (08.11.2007 в 10:31)   письмо автору
 
   для: sim5   (06.11.2007 в 04:25)
 

Поверьте sim5, когда применяя рекурсивную функцию обхода дерева из 50000 элементов ( помню эту жуткую бд металлопроката) сам по себе вывод дерева занимал минуты две. Так что я не рекомендую сразу формировать дерево.

   
 
 автор: sim5   (06.11.2007 в 18:24)   письмо автору
 
   для: Dizels   (06.11.2007 в 18:14)
 

У вас все каталоги с подкаталогами в одной таблице и как у вас описаны связи каталогов? Например, если все каталоги в одной таблице, то paret = 0 обычно означает корневой каталог, в противном случае parent указывает на калог родителя. Так у вас? И еще: товары может иметь только самый нижний каталог, а его родители могут содержать только подкаталоги - это условие соотвествует вашему?

   
 
 автор: Dizels   (06.11.2007 в 18:14)   письмо автору
 
   для: morkovkin   (06.11.2007 в 17:26)
 

Такое ощущения, что в этой ветке каждый свое спрашивает и уходит:))))
Подскажите плз и мне:) Читать 1 пост!

   

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования