codeigniter用不同的值更新表列

htrmnn0y  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我的表中有以下记录:

id            status         

129           'Ready'           
129           'Ready'          
129           'Confirm'          
129           'Confirm'        
129           'Processing'        
130           'Confirm'

我试图改变的是根据用户输入的id改变状态。
我在控制器中捕获用户输入,如下所示:

$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

这基本上意味着id为129的所有行都应该在order中具有status,confirm应该出现一次,processing两次,ready ready和no delivered。
如何使用上述输入数据更新状态,使其如下所示:

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); }

任何帮助都将不胜感激。
`

trnvg8h3

trnvg8h31#

试试这个:

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'));
    }
}

相关问题