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プラグインでした。これにより、ページが2回読み込まれ、2回目に読み込まれると、すべての投稿データが失われます。

私がこれで誰かを助けることができることを願っています

于 2013-06-20T12:28:01.723 に答える