У меня есть следующие записи в моей таблице:
id status
129 'Ready'
129 'Ready'
129 'Confirm'
129 'Confirm'
129 'Processing'
130 'Confirm'
То, что я пытаюсь изменить, это изменить статус в соответствии с идентификатором на основе ввода пользователем.
Я записываю пользовательский ввод в свой контроллер, как показано ниже:
$id= $this->input->post("id");
$confirm = $this->input->post("confirm");
$processing = $this->input->post("processing");
$ready = $this->input->post("ready");
$delivered = $this->input->post("delivered");
пример входных значений пользователя выглядит следующим образом:
$id= 129
$confirm = 1
$processing = 2
$ready = 2
$delivered = 0
Это в основном означает, что все строки с идентификатором 129 должны иметь статус в порядке, подтверждение должно появляться один раз, обрабатывать дважды, готово и не доставляться.
Как я могу обновить статус, чтобы он соответствовал приведенным выше входным данным ниже:
id status
129 'Ready'
129 'Ready'
129 'Confirm'
129 'Processing'
129 'Processing'
130 'Confirm'
В моей модели я пробовал, как показано ниже, но он не работает.
public function update_status($serialized,$confirm,$processing,$ready,$delivered) {
$data = array(
'status' => 'Confirm',
);
$this->db->where('is_serialized', $serialized);
$this->db->limit($confirm);
$this->db->update('items', $data);'$data = array(
'status' => 'Processing',
);
$this->db->where('is_serialized', $serialized);
$this->db->limit($processing);
$this->db->update('items', $data);
$data = array(
'status' => 'Ready',
);
$this->db->where('is_serialized', $serialized);
$this->db->limit($ready);
$this->db->update('items', $data);
$data = array(
'status' => 'Delivered',
);
$this->db->where('is_serialized', $serialized);
$this->db->limit($delivered);
return $this->db->update('items', $data); }
Любая помощь будет высоко оценен.
'
Попробуйте это:
function update_status($id, $serialized, $confirm = 0, $processing = 0, $ready = 0, $delivered = 0) {
if (count($confirm) > 0) {
$this->db->where('id', $id);
$this->db->where('is_serialized', $serialized);
$this->db->limit($confirm);
$this->db->update('items', array('status' => 'Confirm'));
}
if (count($processing) > 0) {
$this->db->where('status', 'Confirm');
$this->db->where('id', $id);
$this->db->where('is_serialized', $serialized);
$this->db->limit($processing);
$this->db->update('items', array('status' => 'Processing'));
}
if (count($ready) > 0) {
$this->db->where('status', 'Processing');
$this->db->where('id', $id);
$this->db->where('is_serialized', $serialized);
$this->db->limit($ready);
$this->db->update('items', array('status' => 'Ready'));
}
if (count($delivered) > 0) {
$this->db->where('status', 'Ready');
$this->db->where('id', $id);
$this->db->where('is_serialized', $serialized);
$this->db->limit($delivered);
$this->db->update('items', array('status' => 'Delivered'));
}
}