Intereting Posts
Обращайтесь со всеми исключениями, помещенными в flashMessage с ZF2 Перенаправить вывод из команды в пакетном файле, выход которого уже перенаправлен? Ошибка Http 500 Отправка сообщения с помощью PHP54 и Twilio WooCommerce – переадресация страницы корзины на страницу проверки PHP MySQL отображает несколько строк, сгруппированных по общим полям Как сортировать объекты JSON по значению определенного ключа Запуск php 5.x и php 7.0 одновременно в моих окнах Преобразование символов Unicode в эквивалентные ASCII-символы Применить запятую к номеру поля в MySQL .htaccess переписать правило со статическими файлами дает мне 404, что мне не хватает? Принимать запросы на получение / отправку только с локального хоста Почему этот CSV не анализируется с помощью fgetcsv? передача данных с javascript на php с использованием JQuery Не удается подключиться к PDO с помощью ssl, но mysqli с помощью ssl works Время между двумя другими временами?

Вставка, обновление, удаление -> Нормализация и заголовок кода

Работа с таблицами и нормализация

У меня три таблицы

----------- articles ----------- id int(11) auto_increment title varchar(100) ----------- categories ---------- id int(11) auto_increment title varchar(100) ------------------- articles_categories -------------------- articles_id int(11) categories_id int(11) 

Я хочу сохранить его в соответствии с правилом нормализации, чтобы достичь этого

 articles_id | categories_id 1 1 1 2 1 3 

Как я могу добиться с помощью воспламенения кода. До сих пор я уже пробовал это

Просмотр | create.php

 <?php echo form_input('title','','id="title_input"'); ?><br> Category <?php foreach ($categories as $c) { echo '<input type="checkbox" id="categories[]" name="categories[]" value="'.$c['id'].'">'; echo $c['title'].'&nbsp'; } ?> <?php echo form_submit('Submit',"Submit"); echo form_close(); ?> 

Контроллер | articles.php

 function insert() { $this->articles_model->save(); } 

Модель | articles_model.php

Томас Клейсон уже помогает вставить вопрос.

Сохранение статей и связанных с ними категорий в соответствии с нормализацией

 function insert() { $title = $this->input->post('title'); $data = array('title' => $title); $this->db->insert('articles', $data); $article_id = $this->db->insert_id(); $categories = $this->input->post('categories'); $data = array(); foreach($categories as $category_id) { $data[] = array( 'articles_id' => $article_id, 'categories_id' => $caregory_id ); } $this->db->insert_batch('articles_categories', $data); } 

Это метод удаления

 function delete($id) { $this->db->delete('articles',array('id'=>$id)); } 

Я теперь застрял с методом обновления

 function update($id) { $id= $this->input->post('id'); $title=$this->input->post('title'); $categories = $_POST['categories']; $data=array( 'title'=>$title, ); $this->db->where('id', $id); $this->db->update('articles',$data); /*can update articles table now */ /* here is the missing idea and what I had done so far*/ $bb = array(); foreach($categories as $categories_id ) { $bb[] = array( 'articles_id' => $id , 'categories_id' =>$categories_id ); } $this->db->update('articles_categories',$bb); /* end of missing idea */ } function select($id) { $query=$this->db->get_where('articles',array('slug'=>$slug)); return $query->row_array(); /*missing idea to retieve categories */ } function select_categories() { /*missing idea to retieve categories */ } 

Спасибо за помощь

Related of "Вставка, обновление, удаление -> Нормализация и заголовок кода"

Если вам нужно обновить таблицу articles_categories новыми значениями, есть несколько способов сделать это. Но мое предложение удаляет все отношения по идентификатору статьи, а затем вставляет их снова. Это лучший способ обновить таблицу отношений. Для этого вы можете разделить модель вставки;

 function insert() { $title = $this->input->post('title'); $data = array('title' => $title); $this->db->insert('articles', $data); $article_id = $this->db->insert_id(); $categories = $this->input->post('categories'); $this->insert_relations($article_id); } function insert_relations($article_id,$categories) { $data = array(); foreach($categories as $category_id) { $data[] = array( 'articles_id' => $article_id, 'categories_id' => $caregory_id ); } $this->db->insert_batch('articles_categories', $data); } 

и вам нужно удалить модель для отношений;

 function delete_relations($articles_id) { $this->db->delete('articles_categories',array('id'=>$articles_id)); } 

и вам нужно изменить свою недостающую часть;

 /* here is the missing idea and what I had done so far*/ $this->delete_relations($id); $this->insert_relations($id,$categories); /* end of missing idea */