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
Форумы портала PHP.SU :: Версия для печати :: как сделать "breadcrumbs" вобратном порятке ?
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » как сделать "breadcrumbs" вобратном порятке ?

Страниц (1): [1]
 

1. sofck - 15 Января, 2010 - 18:34:03 - перейти к сообщению
Есть таблица:
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>

вообщем что то вроде карты зависимых ссылок. весь день ломаю голову никак не могу придумать. Если просто в цикле то надо каждый уровень прописывать.
Помогите плиз! очень надо! Готов даже финансово отблагодорить!)))
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 то значит он является дочерним к пятому элементу. и таких вложение и кол-ва элементов может быть сколько угодно.
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> ???
9. Мелкий - 16 Января, 2010 - 13:37:53 - перейти к сообщению
Ну так рекурсия, она самая.
пробегаем нулевой уровень, на каждом элементе проверяем, если ли у него подуровни, если есть - то вызываем себя рекурсивно, передав номер уровня.

Из своих экспериментов: (потребляем больше памяти, но не дёргаем из-за каждого элемента СУБД)
PHP:
скопировать код в буфер обмена
  1. $res = mysql_query("select tag_id,parent,tag_text from tags order by parent,tag_text DESC") or die ("ошибко ".mysql_error());
  2.         while ($line = mysql_fetch_assoc($res)) {
  3.                 $tags[ (int) $line['parent'] ][] = array( (int) $line['tag_id'], $line['tag_text']);
  4.         }
  5. //пишем список-теги со ссылками на просмотр
  6. function derevolia($parent=0) {
  7.         global $tags;
  8.         echo '<ul>';
  9.         for ($i=count($tags[$parent])-1; $i>=0;$i--) {
  10.                 echo '<li><a href="fotos.php?union='.$tags[$parent][$i][0].'">'.$tags[$parent][$i][1].'</a>';
  11.                 if (isset($tags[ $tags[$parent][$i][0] ])) derevolia($tags[$parent][$i][0]);
  12.                 echo '</li>';
  13.         }
  14.         echo '</ul>';
  15.         }


Или сложнее, но куда забавнее: деревья Nested Sets
http://www[dot]getinfo[dot]ru/article610[dot][dot][dot]html?vote=5#vote
10. sofck - 16 Января, 2010 - 13:49:06 - перейти к сообщению
РАБОТАЕТ!!!!!!!!!!!!! Спасибо тебе огромное!!!
Жаль немного не догоняю как ёто работает((((
Рекурсия значит да)) Надо бы почитать. Спасибо еще раз!!!
11. andrweb - 16 Января, 2010 - 14:07:23 - перейти к сообщению
Круто замутил Улыбка Возьму на вооружение!!! Спасибо!!! Радость

 

Powered by ExBB FM 1.0 RC1