|
|
|
| Есть каталог изображений, привязаный к базе данных...
Структура таблицы каталогов:
--
-- Структура таблицы `pict_groups`
--
CREATE TABLE `pict_groups` (
`id_group` int(11) NOT NULL auto_increment,
`code_group` int(11) default NULL,
`name` tinytext,
`description` tinytext,
`new` enum('y','n') default 'n',
`pos` int(11) default NULL,
`showhide` enum('show','hide') default 'hide',
`code_parent` int(11) default NULL,
PRIMARY KEY (`id_group`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COMMENT='Группы изображений' AUTO_INCREMENT=9 ;
|
Как реализовать навигацию, чтобы было примерно как хождение по каталогам в проводнике или в FAR? | |
|
|
|
|
|
|
|
для: tAleks
(14.11.2006 в 13:54)
| | Никто не знает? | |
|
|
|
|
|
|
|
для: tAleks
(14.11.2006 в 13:54)
| | Реализовать две функции.
Одна отображает дерево. Как правило, рекурсивно.
Другая отображает список элементов выбранного узла. Обычным циклом. Или двумя.
Если трудности с первой - советую глянуть поиском "Каталог продукции". Там было несколько реализаций для многоуровневых каталогов.
Если трудности со второй... м.. тогда приниматься навигацию по многоуровневому каталогу рановато. | |
|
|
|
|
|
|
|
для: Trianon
(14.11.2006 в 19:25)
| | C выводм содержимого узла проблем нет...
Вот с навигацией, разобраться не могу...
Хочу чтобы при хождении по каталогу рисовалась трока типа:
Главное меню/Фото/Семинары/Сосновый бор
|
Чтобы можно было кликнуть например по Фото, и перейти в соответствующий вышеуказанный узел...
буду копаться в поиске...
Если встретите такую тему, будьте добры скиньте ссылку... Буду благодарен... | |
|
|
|
|
|
|
|
для: 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 в 21:33)
| | Можно и так...
Насколько я знаю, есть три подхода к постронеию дерева (в меньшей степени) и к получению пути до элемента (в большей) .
1. Как у Вас. Запрос к БД на каждом шагу.
2. Один запрос, читающий всю структуру дерева (хотя бы поля id, parent_id) в массив PHP.
После чего - построение дерева или пути путем обхода этого массива.
3. Запрос длинной цепочки .... table as T15 LEFT JOIN table as T16 ON T15.parent_id=T16.id .... | |
|
|
|
|
|
|
|
для: Trianon
(14.11.2006 в 21:45)
| | 4. еще есть nested sets, но это штука специфическая. | |
|
|
|
|
|
|
|
для: Loki
(15.11.2006 в 12:22)
| | Пардонте-с, я отвечал в рамках поставленной задачи. А там черным по серому было изображено {Adjacency Lists} | |
|
|
|
|
|
|
|
для: Trianon
(15.11.2006 в 12:51)
| | согласен - условия я не читал:) | |
|
|
|
|
|
|
|
для: Loki
(15.11.2006 в 12:22)
| | Что такое nested sets? | |
|
|
|
|
|
|
|
для: 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 ....
Это я вообще не понял, можно чуть подробнее? | |
|
|
|
|
|
|
|
для: tAleks
(15.11.2006 в 15:33)
| | >Или вообещ читается все,
Строки - все[, относящиеся к этому дереву]. Поля - достаточно id и parent_id.
>и потом в PHP выбирается нужное?
именно. | |
|
|
|
|
|
|
|
для: tAleks
(15.11.2006 в 15:33)
| | А какой путь, по вашему, и из опыта народа предпочтительней?
Если в дереве предвидится от одной до тыщ пяти элементов? | |
|
|
|