|
|
|
| Доброго!
Хочу взять вашего совета - как организовать вывод записей древовидного каталога.
Сейчас каталог представляет собой набор визуальных ссылок разной вложенности, каждый имеет свой id.
Когда добавляется запись в базу, указывается в каком разделе она должна отобразиться, т-е в базе фиксируется этот самый ID.
Например добавили запись в каталог с именем Телевизоры(ID=35)
Когда происходит переход по каталогу по ссылке Телевизоры, то к базе происходит запрос на
Вопрос и проблема вот в чем:
Если Телевизоры являются подкатегорией Бытовая техника (90), то по клику на ссылку Бытовая техника, соответственно запись с 35 уже не выведется.
Как это сделать? | |
|
|
|
|
|
|
|
для: OLi
(16.02.2013 в 21:04)
| | Котлеты отдельно, мухи отдельно. | |
|
|
|
|
|
|
|
для: CrazyAngel
(16.02.2013 в 22:18)
| | Поясню, дерево построено по тривиальному принципу parent_id, id | |
|
|
|
|
|
|
|
для: OLi
(16.02.2013 в 22:23)
| | не так понял вопрос в начале. А по вашему вопросу в голову тольк оподзапросы идет, но это плохой вариант. именно для этого и используются алгоритмы дерева | |
|
|
|
|
|
|
|
для: CrazyAngel
(16.02.2013 в 22:36)
| | Я думал по текущему выбранному ID находить всех родителей, заносить из id в массив и потом делать SELECT записей, где products.category IN ($array)
Но так как дерево связное - то в таком случае для любой выбранной категории отобразятся записи. | |
|
|
|
|
 46.4 Кб |
|
|
для: OLi
(16.02.2013 в 22:43)
| | Вот пример того, что нужно | |
|
|
|
|
|
|
|
для: OLi
(17.02.2013 в 14:13)
| | Сделал так:
private function GetCategories($id){
$this->id_products = $this->catalog_model->getParents($id);
if (!empty($this->id_products)) {
foreach ($this->id_products as $value) {
$this->array_list[] = $value;
$new_elements = $this->GetCategories($value);
if (!empty($new_elements) && is_array($new_elements)) {
$this->array_list[] = $new_elements;
}
}
}
}
|
Вызов таков:
if (isset($id) && !empty($id)) {
$this->GetCategories($id);
array_push($this->array_list, $id);
}
|
| |
|
|
|