2012-11-26 57 views
1

之前調用empty_table我有一個表(mytable的)有3個字段:笨insert_batch

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()之後is'nt 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') 
+0

你會得到什麼,如果'的var_dump($空)'? – GBD

+0

var_dump($ empty)返回:bool(true) –

+0

你在'$ this-> insert_change_carausel_order($ insert)後面得到'echo $ this-> db-> last_query();' – GBD

回答

0

問題是Chrome的螢火蟲插件。這會導致頁面被加載兩次,在第二次加載時丟失了所有的後期數據。

希望我能幫助別人與此(尤爲明顯晚之後再也沒有)awnser

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; 
+0

真的我拼寫錯誤,但我到處都是拼寫錯誤(除了問題)。加上我的插入查詢工作正常,當我命令「$ this-> empty_table();」部分 –

+0

感謝您的思考與我 –

+0

我的回答沒有幫助你 – GBD