Есть таблица:
id - уникальный номер каталога
subto - номер родительского каталога
если id=0 (родительский каталог - главная страница каталога)
как сделать "хлебные кошки" во все вложения?
тоисть
<ul><li><a href="index.php">каталог</a>
<ul><li>первая к главной</li><li>вторая к главной<ul><li>первая ко второй</li><li>вторая ко второй</li><li>и так далее...</li></ul></li></ul>
</li></ul>
вообщем что то вроде карты зависимых ссылок. весь день ломаю голову никак не могу придумать. Если просто в цикле то надо каждый уровень прописывать.
Помогите плиз! очень надо! Готов даже финансово отблагодорить!)))
1. sofck - 15 Января, 2010 - 18:34:03 - перейти к сообщению
2. Ch_chov - 15 Января, 2010 - 18:58:19 - перейти к сообщению
Какое максимальное количество вложенных каталогов?
(Добавление)
И сколько всего каталогов в таблице?
(Добавление)
И сколько всего каталогов в таблице?
3. sofck - 15 Января, 2010 - 22:39:02 - перейти к сообщению
Неограниченное колличество каталогов.
4. Nestor - 16 Января, 2010 - 00:13:27 - перейти к сообщению
Дерево на пхп написать довольно просто
5. sofck - 16 Января, 2010 - 01:29:00 - перейти к сообщению
нет ничего сложного написать дерево в обратном порядке! но по вот то что мне нужно, что то никак....(( по крайне мере мне!
6. vitaliy_mad - 16 Января, 2010 - 01:38:37 - перейти к сообщению
если правильно понял надо написать путь от главной страницы к текущей? тогда рекурсия... у меня где то есть готовая функция... если это то, что надо, могу найти...
7. sofck - 16 Января, 2010 - 10:07:21 - перейти к сообщению
не совсем! мне нужно что бы по зависимости в базе данных сгенерировалась что то вроде карты сайты в формате <ul><li>
к примеру если элемент id 7 в граве subto имеет 5 то значит он является дочерним к пятому элементу. и таких вложение и кол-ва элементов может быть сколько угодно.
к примеру если элемент id 7 в граве subto имеет 5 то значит он является дочерним к пятому элементу. и таких вложение и кол-ва элементов может быть сколько угодно.
8. sofck - 16 Января, 2010 - 13:35:16 - перейти к сообщению
немного подумав сделал так что каждый элемент таблицы имеет следущую структуру.
$cat['id'][0];
$cat['name'][0];
$cat['subto'][0];
===========
и если у этого элемента есть подкаталоги то ссылки на них вот так.
$a = $cat['id'][0];
$cat['link'][$a][0];
$cat['link'][$a][1];
$cat['link'][$a][2];
смотря сколько подкаталогов.
Может теперь как то проще сделать дерево сайта в формате <ul><li> ???
$cat['id'][0];
$cat['name'][0];
$cat['subto'][0];
===========
и если у этого элемента есть подкаталоги то ссылки на них вот так.
$a = $cat['id'][0];
$cat['link'][$a][0];
$cat['link'][$a][1];
$cat['link'][$a][2];
смотря сколько подкаталогов.
Может теперь как то проще сделать дерево сайта в формате <ul><li> ???
9. Мелкий - 16 Января, 2010 - 13:37:53 - перейти к сообщению
Ну так рекурсия, она самая.
пробегаем нулевой уровень, на каждом элементе проверяем, если ли у него подуровни, если есть - то вызываем себя рекурсивно, передав номер уровня.
Из своих экспериментов: (потребляем больше памяти, но не дёргаем из-за каждого элемента СУБД)
пробегаем нулевой уровень, на каждом элементе проверяем, если ли у него подуровни, если есть - то вызываем себя рекурсивно, передав номер уровня.
Из своих экспериментов: (потребляем больше памяти, но не дёргаем из-за каждого элемента СУБД)
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- $res = mysql_query("select tag_id,parent,tag_text from tags order by parent,tag_text DESC") or die ("ошибко ".mysql_error());
- }
- //пишем список-теги со ссылками на просмотр
- function derevolia($parent=0) {
- global $tags;
- echo '<ul>';
- echo '<li><a href="fotos.php?union='.$tags[$parent][$i][0].'">'.$tags[$parent][$i][1].'</a>';
- echo '</li>';
- }
- echo '</ul>';
- }
Или сложнее, но куда забавнее: деревья Nested Sets
http://www[dot]getinfo[dot]ru/article610[dot][dot][dot]html?vote=5#vote