PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
sofck
Отправлено: 15 Января, 2010 - 18:34:03
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Есть таблица:
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>

вообщем что то вроде карты зависимых ссылок. весь день ломаю голову никак не могу придумать. Если просто в цикле то надо каждый уровень прописывать.
Помогите плиз! очень надо! Готов даже финансово отблагодорить!)))
 
 Top
Ch_chov
Отправлено: 15 Января, 2010 - 18:58:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Какое максимальное количество вложенных каталогов?
(Добавление)
И сколько всего каталогов в таблице?
 
 Top
sofck
Отправлено: 15 Января, 2010 - 22:39:02
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Неограниченное колличество каталогов.
 
 Top
Nestor
Отправлено: 16 Января, 2010 - 00:13:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Дерево на пхп написать довольно просто


-----
Aurus CMS
 
 Top
sofck
Отправлено: 16 Января, 2010 - 01:29:00
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




нет ничего сложного написать дерево в обратном порядке! но по вот то что мне нужно, что то никак....(( по крайне мере мне!
 
 Top
vitaliy_mad
Отправлено: 16 Января, 2010 - 01:38:37
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




если правильно понял надо написать путь от главной страницы к текущей? тогда рекурсия... у меня где то есть готовая функция... если это то, что надо, могу найти...
 
 Top
sofck
Отправлено: 16 Января, 2010 - 10:07:21
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




не совсем! мне нужно что бы по зависимости в базе данных сгенерировалась что то вроде карты сайты в формате <ul><li>
к примеру если элемент id 7 в граве subto имеет 5 то значит он является дочерним к пятому элементу. и таких вложение и кол-ва элементов может быть сколько угодно.
 
 Top
sofck
Отправлено: 16 Января, 2010 - 13:35:16
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




немного подумав сделал так что каждый элемент таблицы имеет следущую структуру.

$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> ???

(Отредактировано автором: 16 Января, 2010 - 13:36:00)

 
 Top
Мелкий Супермодератор
Отправлено: 16 Января, 2010 - 13:37:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 11900
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 615 раз(а)




Ну так рекурсия, она самая.
пробегаем нулевой уровень, на каждом элементе проверяем, если ли у него подуровни, если есть - то вызываем себя рекурсивно, передав номер уровня.

Из своих экспериментов: (потребляем больше памяти, но не дёргаем из-за каждого элемента СУБД)
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.getinfo.ru/article610.html?vote=5#vote

(Отредактировано автором: 16 Января, 2010 - 13:42:07)



-----
PostgreSQL DBA
 
 Top
sofck
Отправлено: 16 Января, 2010 - 13:49:06
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




РАБОТАЕТ!!!!!!!!!!!!! Спасибо тебе огромное!!!
Жаль немного не догоняю как ёто работает((((
Рекурсия значит да)) Надо бы почитать. Спасибо еще раз!!!
 
 Top
andrweb
Отправлено: 16 Января, 2010 - 14:07:23
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: РОССИЯ Ростов-на-Дону


Помог: 0 раз(а)




Круто замутил Улыбка Возьму на вооружение!!! Спасибо!!! Радость


-----
Горбатого могила исправит.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB