Навигация по дереву и ссылки

Poster

Новичок
Навигация по дереву и ссылки

Господа, снова структура id - parent_id - name :rolleyes:

Сейчас пришло время повесить на деревце навигации
Оборудование > Мышки > Супермышка1
ссылки.

Уровень вложенности ничем не органичивается и заранее не известен.

Как можно сформировать на каждом элементе ссылку?
Например
Оборудование - index.php?m=1
Мышки - index.php?m=1&i=4
Супермышка1 - Супермышка1&i=4&l=7

Есть классы реализующие такие задачи?
 

Long

Новичок
Poster, тебе не приходило в голову, что это обычное дерево? для того чтобы построить ссылки для Оборудование > Мышки > Супермышка1 нужен всего ОДИН параметр, который будет указывать на категорию Супермышка1
 

Vital_N

Новичок
Poster
ты же сам недавно пример своей функции приводил, ну вот при формировании дерева бери еще ид и делай ссылку
 

Poster

Новичок
Пиплз, что-то я не пойму вас...
Вот функция выводит ветвь дерева от листа к корню:
PHP:
function smalltree($id) {

$sql=mysql_query("SELECT id, item_u, parent_id, sort FROM products_extended WHERE id='".$id."' ORDER by sort");
	$e=array();
	while ($row = mysql_fetch_array($sql)) {
	
		$id1 = $row['parent_id'];

		$out = smalltree($id1);
		
		if ($row['parent_id']==0) {
		$out .= '';
		}
		else $out .= ' > ';
		
		$out .= $row['item_u'];
		
		
		return $out;

	}

}
Как сюда прицепить ссылки?
 

Poster

Новичок
Автор оригинала: SiMM
А как ты к HTML ссылки прицепляешь? Аналогично.
да нуууу, вы меня не поняли...

мне нужно чтобы последний элемент в выводе (т.е. лист:) имел вот такую ссыль:

<a href="index.php?m=1&i=4&l=7" class="bbb">Супермышка1</a>

Вот как быть с переменными при выводе элементов дерева?

Дерево не ограничено "по росту"
 

Poster

Новичок
Автор оригинала: Vital_N
ты скажи что есть m, i и l? и откуда ты их берешь
по $_GET['m'] на странице формируется менюха принадлежности к Оборудованию

по $_GET['i'] - менюха Мышек

по $_GET['l'] - сама Супермышка1.

как можно построить строку навигации
Оборудование > Мышки > Супермышка1
со ссылками без этих параметров - не представляю.

так что вы посоветуете?
 

SelenIT

IT-лунатик :)
Poster
По $_GET['l'] ты определяешь, что нужно отобразить Супермышку1

Затем делаешь запрос к базе и выясняешь, что Супермышка1 входит в категорию Мышек, которая в свою очередь относится к Оборудованию.

Зная это, формируешь и выводишь все необходимые менюхи.

Заодно исключишь ситуацию, что кто-нибудь подберет такие три параметра, что твоя Супермышка1 выведется в подразделе Туалетная бумага раздела Продукты питания (утрирую). И разошлет эту ссылку всем знакомым как доказательство ламерства автора сайта...
 

Vital_N

Новичок
Автор оригинала: Poster
по $_GET['m'] на странице формируется менюха принадлежности к Оборудованию

по $_GET['i'] - менюха Мышек

по $_GET['l'] - сама Супермышка1.

как можно построить строку навигации
Оборудование > Мышки > Супермышка1
со ссылками без этих параметров - не представляю.

так что вы посоветуете?
ну это ты рассказал, что будет если нажать на ссылку - а значения m= и т.д. ты же из базы выдергиваешь?
 

kombo

Новичок
Неважно какой величины вложенность, к ссылке цепляй только родной id, а скриптом вычисляй от него root_id и от него уже отображай дерево (до нужного id или до последнего узла, по желанию)
 

Poster

Новичок
ок, господа, спасибо, объяснили отлично.
Буду делать так.

Сорри если вначале внес некоторую неясность ;)
 
Сверху