PHP未正确删除和插入数据

PHP未正确删除和插入数据,php,jquery,Php,Jquery,这段代码的工作原理是每次用户访问页面时,我都会从表中提取所有数据,并通过下面的帖子传递。如果用户以前没有访问过该页面,并且数据库中的cookie_id为空,则会插入该内容,如果找到该内容,则会从数据库中删除该内容并再次插入。但我遇到的问题是,当删除发生时,它会删除所有内容,并且似乎会从$data1中插入一个值,而不是从$data中插入所有数据。你知道为什么会这样吗 后端: $cookie_id = $this->input->cookie("session_id");

这段代码的工作原理是每次用户访问页面时,我都会从表中提取所有数据,并通过下面的帖子传递。如果用户以前没有访问过该页面,并且数据库中的cookie_id为空,则会插入该内容,如果找到该内容,则会从数据库中删除该内容并再次插入。但我遇到的问题是,当删除发生时,它会删除所有内容,并且似乎会从$data1中插入一个值,而不是从$data中插入所有数据。你知道为什么会这样吗

后端:

    $cookie_id = $this->input->cookie("session_id");
    $selected_size = $this->input->post('selected_size');
    $product_id = $this->input->post('product_id');
    $product_name = $this->input->post('product_name');
    $product_color = $this->input->post('product_color');

    $q1 = $this->db->query("SELECT * FROM default_cart_temp
                            WHERE cookie_id = '$cookie_id'
                            AND is_paid = 'No'");
    if ($q1->num_rows() > 0) {
        $this->db->where('cookie_id', $cookie_id);
        $this->db->delete('default_cart_temp');

        foreach($product_id as $key => $value) {
            $data1 = array('selected_size' => $selected_size[$key],
                          'product_id' => $value,
                          'product_name' => $product_name[$key],
                          'product_color' => $product_color[$key],
                          'cookie_id' => $cookie_id,
                          'is_paid' => 'No');
        } $this->db->insert('default_cart_temp', $data1);
        echo json_encode(array('success' => true));
    } else {
        foreach($product_id as $key => $value) {
            $data = array('selected_size' => $selected_size[$key],
                          'product_id' => $value,
                          'product_name' => $product_name[$key],
                          'product_color' => $product_color[$key],
                          'cookie_id' => $cookie_id,
                          'is_paid' => 'No');
        } $this->db->insert('default_cart_temp', $data);
    }
前端:

   selected_size = $('.selected_size1').text();
    arr1 = selected_size.split(".");
    ss1 = arr1.slice(0, -1);

    product_id = $('.product_id1').text();
    arr2 = product_id.split(".");
    ss2 = arr2.slice(0, -1);

    product_name = $('.product_name1').text();
    arr3 = product_name.split(".");
    ss3 = arr3.slice(0, -1);

    product_color = $('.product_color1').text();
    arr4 = product_color.split(".");
    ss4 = arr4.slice(0, -1);

      $.ajax({
        type: "POST",
        dataType: "JSON",
        url: "<?=base_url()?>index.php/products/products/new_instance",
        data: { selected_size: ss1, product_id: ss2, product_name: ss3, product_color: ss4 },
        json: {success: true},
        success: function(data) {
          if(data.success == true) {
            alert("True");
          }
        }
      });
selected_size=$('.selected_size 1').text();
arr1=所选的分割大小(“.”);
ss1=arr1.slice(0,-1);
product_id=$('.product_id1').text();
arr2=产品标识拆分(“.”);
ss2=arr2.slice(0,-1);
product_name=$('.product_name 1').text();
arr3=产品名称拆分(“.”);
ss3=arr3.slice(0,-1);
product_color=$('.product_color1').text();
arr4=产品颜色分割(“.”);
ss4=arr4.slice(0,-1);
$.ajax({
类型:“POST”,
数据类型:“JSON”,
url:“index.php/products/products/new_实例”,
数据:{所选大小:ss1,产品id:ss2,产品名称:ss3,产品颜色:ss4},
json:{success:true},
成功:功能(数据){
if(data.success==true){
警惕(“真实”);
}
}
});

在每个
foreach
循环执行中,您都覆盖了
$data
$data1
变量。您必须将它们更改为数组并添加如下数据
$data[]=$subArray

是否可以
insert()
一次接受多行?如果不是,我认为
insert()
调用应该在foreach内部,而不是外部?并且您不需要指定从“default\u cart\u temp”中删除什么吗?在我看来,您似乎在告诉它使用以下指令删除该表中的所有条目:
$this->db->delete('default_cart_temp')