У меня есть несколько вариантов для моих категорий продуктов, и у меня есть 3 таблицы для них. Мои таблицы выглядит следующим образом:обновить несколько значений выбора в базе данных mysql с помощью codeigniter
продукции:
product_id | product_name
1 | my_package
категории:
category_id | category_name
1 | category 1
2 | category 2
3 | category 3
product_categories:
pc_id | product_id | category_id
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
Когда я хочу обновить таблицу product_categories
, она не обновляется. Я хотел установить только одну категорию для своего продукта и удалить два других, но когда я посмотрел на моей базе данных я видел, что он изменил все строки, как:
product_categories:
pc_id | product_id | category_id
1 | 1 | 2
2 | 1 | 2
3 | 1 | 2
Это мой код в виде:
foreach($selected_categories as $selected_category){
$selected_category_options[] = $selected_category->category_Id;
}
echo form_multiselect('product_category_id[]', $category_options, set_value('product_category_id', $selected_category_options));
и это код в моей модели:
foreach($_POST['product_category_id'] as $key => $product_category_id){
$options = array(
'category_Id' => $product_category_id
);
$this->db->where('product_id', $options['product_id']);
$this->db->update('product_categories', $options);
}
это правильный способ сделать это ?! или это просто трюк, чтобы избавиться от проблемы ?! – Afshin
@Afshin это не правильный путь, его быстрое решение в правильном направлении - получить идентификаторы кота из сообщения и сравнить с идентификаторами cat от db и удалить те, которые не находятся в $ _POST из db, и добавить те, которые являются новыми, как при сравнении –
в любом случае спасибо :) – Afshin