1

如果商品id已经存在,数量应该加上传入数量,否则如果id不存在插入id和数量

我的表:

if  
item_id=array(24,25);

quantity=array(10,2);

这将被插入到表中:

else if 

item_id=array(22,23);
quantity=array(2,4);

数量必须添加到现有项目

auto_id | item_id | 数量

 1        22         12   
 2        23         3

这是一个数组类型的项目 ID 和数量。对不起我的英语,谢谢,

foreach($item_id as $row => $id){

        $items_id = $id;
            foreach($quantity as $row => $id2){
            $qty = $id2;
                $values[] = array(
                        array("item_id" => $items_id,
                        "quantity" => $qty));
                $sql = $this->db->query("SELECT ip_id FROM my_table WHERE item_id = '".$items_id."'");      
                if($sql->num_rows() > 0){

                    $this->db->query("UPDATE my_table SET quantity=quantity+'".$qty."' WHERE item_id='".$items_id."'");
                }else{    
                    $this->db->insert_batch('my_table',$values);
                }
            }
4

1 回答 1

3

跳过所有这些代码并使用一个简单的ON DUPLICATE KEY ...构造:

INSERT INTO yourtable (id, quantity) VALUES ($id, $quantity)
ON DUPLICATE KEY UPDATE quantity=quantity+VALUES(quantity)
于 2013-04-04T16:15:05.000 回答