1

我有一个包含 3 个字段的表(myTable):

ID (int), posistion(int), products_id(int)

我有一个表格,我们可以在其中更改订单,并从此列表中删除项目。用户完成编辑列表后,他提交表单。

我想在插入新数据之前清空表格。

所以我打电话$this->db->empty_table("myTable");

之后我像这样插入新数据:

$this->db->insert_batch("jcarousel",$insert);

问题是:在插入查询之后以某种方式调用了 empty_table(),因为我的表总是空的。需要明确的是:当我注释掉时,我的插入查询工作正常//$this->db->empty_table("myTable");

我已经尝试了几件事,所以我的代码有点搞砸了。现在它看起来像这样:

public function change_carousel_order($value='')
{
    $this->output->enable_profiler(TRUE);
    $empty = $this->empty_table();
    //$empty = TRUE;
    $form = $this->input->post();
    //print_r($form['order']);
    $insert = array();
    foreach ($form['order'] as $key => $value) {
        //echo "value: ".$value;
        $insert[$key]['product_id'] = $value;
        $insert[$key]['posistion'] = $key;

    }
    echo $this->db->last_query();
    if($empty==TRUE)
    {
        echo "jaaa";
        echo $this->insert_change_carausel_order($insert);
    }
    else{
        echo "neee!";
    }
    echo $this->db->last_query();
    //redirect("welcome/jcarousel");
}
public function empty_table($value='')
{
    return $this->db->empty_table("jcarousel");
}
public function insert_change_carausel_order($insert=array())
{
    return $this->db->insert_batch("jcarousel",$insert);
}

任何人都看到我做错了什么?为什么调用 empty_table() 后 codeigniter 不插入任何数据?任何帮助将不胜感激。

$this->output->enable_profiler(TRUE); 告诉我们有 2 个查询;删除查询确实在插入查询之后运行

0.0003       DELETE FROM `jcarousel` 
0.0002       INSERT INTO `jcarousel` (`posistion`, `product_id`) VALUES (0,'755'), (1,'835'), (2,'838') 

和另一个结果相同的设置:

0.0006       DELETE FROM `jcarousel` 
0.0002       INSERT INTO `jcarousel` (`posistion`, `product_id`) VALUES (0,'755'), (1,'835'), (2,'838') 
4

2 回答 2

0

我认为你有拼写错误的问题。

正如你所说

ID (int), position(int), products_id(int)

但是在数组中你使用如下

//wrong
$insert[$key]['product_id'] = $value;

//correct
$insert[$key]['products_id'] = $value;

//wrong
$insert[$key]['posistion'] = $key;

//correct
$insert[$key]['position'] = $key;
于 2012-11-26T08:56:46.163 回答
0

问题是 chrome 的 firebug 插件。这会导致页面被加载两次,第二次加载它丢失了所有的帖子数据。

希望我能帮助某人解决这个问题(最好是晚一点,然后永远不要)

于 2013-06-20T12:28:01.723 回答