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

Форум MySQL

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

 

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

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

тема: Как сделать навигацию по бесконечно вложенному каталогу?

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

 
 автор: Niko2   (06.12.2006 в 00:58)   письмо автору
 
   для: tAleks   (15.11.2006 в 15:33)
 

А какой путь, по вашему, и из опыта народа предпочтительней?
Если в дереве предвидится от одной до тыщ пяти элементов?

   
 
 автор: Loki   (16.11.2006 в 15:51)   письмо автору
 
   для: Trianon   (15.11.2006 в 12:51)
 

согласен - условия я не читал:)

   
 
 автор: Trianon   (15.11.2006 в 15:37)   письмо автору
 
   для: tAleks   (15.11.2006 в 15:33)
 

>Или вообещ читается все,
Строки - все[, относящиеся к этому дереву]. Поля - достаточно id и parent_id.
>и потом в PHP выбирается нужное?
именно.

   
 
 автор: tAleks   (15.11.2006 в 15:33)   письмо автору
 
   для: Loki   (15.11.2006 в 12:22)
 

Что такое nested sets?

   
 
 автор: tAleks   (15.11.2006 в 15:33)   письмо автору
 
   для: Trianon   (14.11.2006 в 21:45)
 

>Можно и так...
>
>Насколько я знаю, есть три подхода к постронеию дерева (в меньшей степени) и к получению пути до элемента (в большей) .
>1. Как у Вас. Запрос к БД на каждом шагу.
>2. Один запрос, читающий всю структуру дерева (хотя бы поля id, parent_id) в массив PHP.

А как одним запросом читать всю структуруд дерева? Это же надоз знать хотя бы первичные ключи каждого узла? Или вообещ читается все, и потом в PHP выбирается нужное?

>После чего - построение дерева или пути путем обхода этого массива.
>3. Запрос длинной цепочки .... table as T15 LEFT JOIN table as T16 ON T15.parent_id=T16.id ....

Это я вообще не понял, можно чуть подробнее?

   
 
 автор: Trianon   (15.11.2006 в 12:51)   письмо автору
 
   для: Loki   (15.11.2006 в 12:22)
 

Пардонте-с, я отвечал в рамках поставленной задачи. А там черным по серому было изображено {Adjacency Lists}

   
 
 автор: Loki   (15.11.2006 в 12:22)   письмо автору
 
   для: Trianon   (14.11.2006 в 21:45)
 

4. еще есть nested sets, но это штука специфическая.

   
 
 автор: Trianon   (14.11.2006 в 21:45)   письмо автору
 
   для: tAleks   (14.11.2006 в 21:33)
 

Можно и так...

Насколько я знаю, есть три подхода к постронеию дерева (в меньшей степени) и к получению пути до элемента (в большей) .
1. Как у Вас. Запрос к БД на каждом шагу.
2. Один запрос, читающий всю структуру дерева (хотя бы поля id, parent_id) в массив PHP.
После чего - построение дерева или пути путем обхода этого массива.
3. Запрос длинной цепочки .... table as T15 LEFT JOIN table as T16 ON T15.parent_id=T16.id ....

   
 
 автор: tAleks   (14.11.2006 в 21:33)   письмо автору
 
   для: Trianon   (14.11.2006 в 19:25)
 

Заделал вот такю функцию рекурсивного подьема по дереву:

function menu($code_group)
{
    // Если код родителя 0 - возвращаем результат
    if($code_group != 0)
    {    
        // Запрос имени группы и родителя
        $query = mysql_query("SELECT name, code_parent FROM pict_groups WHERE code_group = $code_group LIMIT 1") or die('Ошибка 1 '.mysql_error());
        if(mysql_num_rows($query) > 0) $g = mysql_fetch_assoc($query);
        
        // Делаем строку
        return menu($g['code_parent']).'/<a href="'.$_SERVER['PHP_SELF'].'?code_group='.$code_group.'">'.$g['name'].'</a>';
    }
}


Хочу спросить, я правильно делаю? Она вроде работает, но моежт есть какие замечания?

   
 
 автор: tAleks   (14.11.2006 в 20:31)   письмо автору
 
   для: Trianon   (14.11.2006 в 19:25)
 

C выводм содержимого узла проблем нет...
Вот с навигацией, разобраться не могу...
Хочу чтобы при хождении по каталогу рисовалась трока типа:

Главное меню/Фото/Семинары/Сосновый бор

Чтобы можно было кликнуть например по Фото, и перейти в соответствующий вышеуказанный узел...

буду копаться в поиске...

Если встретите такую тему, будьте добры скиньте ссылку... Буду благодарен...

   

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

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

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