Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод записей из древовидного каталога
 
 автор: OLi   (16.02.2013 в 21:04)   письмо автору
 
 

Доброго!
Хочу взять вашего совета - как организовать вывод записей древовидного каталога.
Сейчас каталог представляет собой набор визуальных ссылок разной вложенности, каждый имеет свой id.
Когда добавляется запись в базу, указывается в каком разделе она должна отобразиться, т-е в базе фиксируется этот самый ID.
Например добавили запись в каталог с именем Телевизоры(ID=35)
Когда происходит переход по каталогу по ссылке Телевизоры, то к базе происходит запрос на
WHERE Category = 35.

Вопрос и проблема вот в чем:
Если Телевизоры являются подкатегорией Бытовая техника (90), то по клику на ссылку Бытовая техника, соответственно запись с 35 уже не выведется.
Как это сделать?

  Ответить  
 
 автор: CrazyAngel   (16.02.2013 в 22:18)   письмо автору
 
   для: OLi   (16.02.2013 в 21:04)
 

Котлеты отдельно, мухи отдельно.

  Ответить  
 
 автор: OLi   (16.02.2013 в 22:23)   письмо автору
 
   для: CrazyAngel   (16.02.2013 в 22:18)
 

Поясню, дерево построено по тривиальному принципу parent_id, id

  Ответить  
 
 автор: CrazyAngel   (16.02.2013 в 22:36)   письмо автору
 
   для: OLi   (16.02.2013 в 22:23)
 

не так понял вопрос в начале. А по вашему вопросу в голову тольк оподзапросы идет, но это плохой вариант. именно для этого и используются алгоритмы дерева

  Ответить  
 
 автор: OLi   (16.02.2013 в 22:43)   письмо автору
 
   для: CrazyAngel   (16.02.2013 в 22:36)
 

Я думал по текущему выбранному ID находить всех родителей, заносить из id в массив и потом делать SELECT записей, где products.category IN ($array)
Но так как дерево связное - то в таком случае для любой выбранной категории отобразятся записи.

  Ответить  
 
 автор: OLi   (17.02.2013 в 14:13)   письмо автору
46.4 Кб
 
   для: OLi   (16.02.2013 в 22:43)
 

Вот пример того, что нужно

  Ответить  
 
 автор: OLi   (17.02.2013 в 16:10)   письмо автору
 
   для: 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);

}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования