Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
![]() |
![]() |
Сообщение
#1
|
||
![]() |
|
||
|
|||
![]() |
![]()
Сообщение
#2
|
![]() |
WHERE `parent` = $parent_id AND `id` IN ('1', '2', '3')
|
|
|
![]() |
![]()
Сообщение
#3
|
![]() |
А зачем у функции параметр $parent_id? Надо при вызове передать ID нужного раздела. Т.е. чтобы вывести все дерево, передаем 0, чтобы вывести всех потомков какого-то раздела, передаем ID этого раздела.
P.S. [php]<?php function ShowTree ( $parents ) { if ( is_array( $parents ) ) { foreach ( $parents as $id ) ShowTree ( $id ); return; } $query = "SELECT `id`, `parent`, `title` FROM `categories` WHERE `parent` = ".$parents; $res = mysql_query($query); if (mysql_num_rows($res) > 0) { echo '<ul>'; while ($row = mysql_fetch_array($res)) { echo '<li><a href="/?id='.$row['id'].'">'.$row['title'].'</a></li>'; ShowTree ($row['id']); } echo '</ul>'; } } $category = 0; ShowTree ($category); echo '<hr>'; $categories = array( 2, 19 ); ShowTree ($categories); ?>[/php]P.P.S. Отлажено :) |
|
|
![]() |
![]()
Сообщение
#4
|
![]() |
[php]function ShowTree ($parent_id, $sections = array()) {
if (!empty($sections)) $and = "AND `id` IN ('".implode("','", $sections)."')"; $sql = "SELECT `id`, `parent`, `name` FROM `tree` WHERE `parent` = $parent_id ".$and; $result = mysql_query($sql); if (mysql_num_rows($result) > 0) { echo '<ul>'; while ($row = mysql_fetch_array($result)) { echo '<li><a href="/?id='.$row['id'].'">'.$row['name'].'</a></li>'; ShowTree ($row['id'], false); } echo '</ul>'; } }[/php]ShowTree(0, array(1,3,5)); Должен вывести в дереве только разделы 1,3,5 (не занимался отладкой :) ) |
|
|
![]() |
Сообщение
#5
|
![]() |
Спасибо! Догнал теперь.
|
|
|
![]() |
![]()
Сообщение
#6
|
|
![]() |
Для работы с деревьями давно использую данные в виде Nested Sets - при этом прилично усложняются телодвижения с узлами, зато делать выборки - просто прелесть. Данные в любую строну выбираются одним sql-запросом и без рекурсий.
PS: Вдруг пригодится кому.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
![]() |
Google добавил в результаты выдачи меню с дополнительной информацией об источнике | 1 | VinogradOFF | 443 | 3.2.2021, 14:45 автор: LigaGiga |
![]() |
![]() |
1 | Викторио_mw | 731 | 28.8.2018, 0:10 автор: TimurR |
![]() |
Необходимо разрезать и установить Меню для группы ВКонтакте | 2 | boltuk | 2557 | 4.12.2017, 14:44 автор: tezoro |
![]() |
Помогите с меню - переделать в выпадающее | 1 | lepota | 745 | 4.12.2017, 13:29 автор: yury_mw |
![]() |
Слайдер под меню | 0 | Olya_Poy | 1631 | 29.11.2017, 11:09 автор: -garmoni- |
![]() |
Текстовая версия | Сейчас: 26.2.2021, 5:08 |