Romantik
TeaM PHPClub
Обход "дерева". Алгоритм выборки родителей.
Приветствую.
Есть следующая древовидная таблица-структура прайса:
items
Где type=1, значит, что это устройство и к нему есть картриджи
wares
id items_id name
Задача выводить прайс картриджей (wares)
Я сделал панель типа Все устройства ->Принтеры->EPSON->Принтер EPSON C42
И внизу его картриджи в виде прайса.
Необходимо сделать алгоритм возможности выбирать прайс на:
-ВСЕ "EPSON"
-ВСЕ "Принтеры"
-на ВСЕ
Я бы хотел Вашей помощи в унивиерсальном алгоритме выборки. Если кто сталкивался, подскажите
Легко когда на ВСЕ "EPSON":
А вот вывод на ВСЕ "Принтеры" требует еще одного цикла, и т.п.
Наверняка есть более удобный алгоритм.
Заранее благодарен за любую помощь и замечания.
Приветствую.
Есть следующая древовидная таблица-структура прайса:
items
Код:
[B]id parent_id name type[/B]
1 0 Принтеры 0
2 0 Копиры 0
3 1 Струйные 0
4 1 Лазерные 0
5 3 EPSON 0
6 3 CANON 0
7 5 Принтер EPSON C42 1
8 5 Принтер EPSON C20 1
9 6 Принтер CANON i 250 1
10 6 Принтер CANON i 350 1
wares
id items_id name
Задача выводить прайс картриджей (wares)
Я сделал панель типа Все устройства ->Принтеры->EPSON->Принтер EPSON C42
И внизу его картриджи в виде прайса.
Необходимо сделать алгоритм возможности выбирать прайс на:
-ВСЕ "EPSON"
-ВСЕ "Принтеры"
-на ВСЕ
Я бы хотел Вашей помощи в унивиерсальном алгоритме выборки. Если кто сталкивался, подскажите
Легко когда на ВСЕ "EPSON":
Код:
SELECT * FROM items WHERE parent_id=3
while()
{
$id= $row["id"];
SELECT wares.name FROM wares,items WHERE wares.items_id=items.id AND items.parent_id=$id
while()
{
...Вывод прайса
}
}
Наверняка есть более удобный алгоритм.
Заранее благодарен за любую помощь и замечания.