У меня проблема немного отличается от this и this. В моем классе модели мне пришлось отделить удаление и сохранить в две разные функции следующим образом.База данных Codeigniter удаляет и вставляет несколько записей
#save advanced preferences
function savePreference($preferences){
$this->db->insert('bingo_advanced_preferences', $preferences);
echo $this->db->last_query();
}
#delete advanced preferences
function deletePreference($user_id,$criteria){
return $this->db->delete('bingo_advanced_preferences', array('bingo_user_id' => $user_id,'adv_criteria' =>$criteria));
}
, если я вызываю эти функции с контроллера, как это, удаление, обновление работает.
//language preferences
if($this->input->post('language') && count($this->input->post('language')) > 0):
$this->Bingo_advanced_preferences->deletePreference($user,'15');
for ($i=0; $i < count($this->input->post('language')); $i++) {
$language_options = array(
'bingo_user_id' => $user,
'adv_criteria' => 15, //languages
'adv_criteria_value' => $this->input->post('language')[$i],
'adv_date_created' => date('Y-m-d H:i:s')
);
$this->Bingo_advanced_preferences->savePreference($language_options);
}
endif;
Однако это не угождать для сценария, где кто-то снимает выделение все так правильный порядок должен быть.
$this->Bingo_advanced_preferences->deletePreference($user,'15');
if($this->input->post('language') && count($this->input->post('language')) > 0):
for ($i=0; $i < count($this->input->post('language')); $i++) {
$language_options = array(
'bingo_user_id' => $user,
'adv_criteria' => 15, //languages
'adv_criteria_value' => $this->input->post('language')[$i],
'adv_date_created' => date('Y-m-d H:i:s')
);
$this->Bingo_advanced_preferences->savePreference($language_options);
}
endif;
Это удаляет все записи с помощью adv_criteria = 15 и никогда не обновляется (выполните последующую экономию). Конечно, я решил проблему с выражением if else, поэтому мой вопрос в том, почему это не работает? Как мы можем это сделать?
Я не понял эту часть из последнего абзаца - «Это только удаляет все записи и никогда не обновляется ». – BlackBurn027
Я уточнил вопрос –
Хорошо, давайте попробуем, если ничего не выбрано, в дальнейшем ничего не сохранится. если что-то выбрано, я не вижу никаких проблем с последующим сохранением. так что все выглядит хорошо для меня: o исправьте меня, если я ошибаюсь – BlackBurn027