RainMEN
@RainMEN
HTML/STYLUS/JADE/JS/Laravel/Joomla/DLE и т.д.

Как правильно составить алгоритм добавления выделенной категории?

Всем привет!

В общем суть такая, есть 2 таблицы, таблица category и таблица mod_subscribes_event_setting в которой (id и id категории).

Есть страница список всех категорий с checkbox, нужно записывать id категорий если checbox активен в таблицу mod_subscribes_event_setting

Не могу составить алгоритм что бы лишний раз к бд не обращаться.

Имею в контроллере функцию
public function eventSetting(){

        /**Список всех категорий*/
        $event_categories = $this->subscribes_model_events->getListCategory();

        /**Чекбоксы которые активны array{*,*,*,*}*/
        $idsCategory = $_POST['ids'];

        if(!empty($idsCategory))
        {
            foreach ($event_categories as $category){

                foreach($idsCategory as $id)
                {
                    if($category['id'] == $id)
                    {

                        /**По получаем ID категории если она есть в таблице mod_subscribes_event_setting*/
                        $event_category_item = $this->subscribes_model_events->getItem( $category['id']);

                        if ($category['id'] != $event_category_item['event_category_id']){
                            /**Если нет то создаем*/
                            $data= array(
                                'event_category_id' => $category['id']
                            );

                            $this->subscribes_model_events->addSetting($data);

                        }

                        /**Как то нужно проверить если статья была но checkbox сняли удалить эту запись*/

                        showMessage('Данные добавлены '.$data['event_category_id'] );
                    }
                }


            }
        }

        /**Загружаем view передаем список всех категорий*/

        \CMSFactory\assetManager::create()
            ->setData(array(
                'event_categories' => $event_categories
            ))
            ->renderAdmin('subscriber_event/setting');
    }


Может можно это сделать с помощью SQL запросов что бы сразу записывать массив тех что нажаты, а тех что сняты удалять?
  • Вопрос задан
  • 2362 просмотра
Решения вопроса 1
@allexp
web-developer
Можно просто очищать таблицу mod_subscribes_event_setting, и заново вставлять выбранные категории списком INSERT INTO .. VALUES(*,*,*...). Итого 2 запроса.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы