在codeigniter中更新数组

时间:2016-01-29 22:19:19

标签: php codeigniter updatemodel

我有一个w / c包含的表菜单(recipe_id,ingredient_id,category_id)。我试图更新我的成分但它只更新1 ingredient_id。喜欢这个

menu

这是我的代码:

控制器:

 public function save_edit_recipe()
{

foreach($this->input->post('ingredients') as $key => $value)
{
    $menuData[] = array('recipe_id'         => intval($this->input->post('recipe_id')),
                        'ingredient_id'     => intval($value),
                        'category_id'       => intval($this->input->post('recipe_category'))
    );
}
// var_dump($menuData); die();
$this->products_model->updatemenu($menuData);

MODEL:

  public function updatemenu($data)
{




    foreach($data as $row => $value)
    {
        $this->db->where('ingredient_id', $data['ingredient_id']);
        $query=$this->db->update('menu', $value);

    }


    return $result;


}

2 个答案:

答案 0 :(得分:2)

删除控制器中的所有数据并添加到模型中。

在控制器中

$this->products_model->updatemenu();

在模型中

public function updatemenu()
{
    foreach($this->input->post('ingredients') as $key => $value)
    {
        $menuData = array(
            'recipe_id'         => intval($this->input->post('recipe_id')),
            'ingredient_id'     => intval($value),
            'category_id'       => intval($this->input->post('recipe_category'))
        );
        $this->db->where('ingredient_id', $value);
        $this->db->update('menu', $menuData);
    }
}

答案 1 :(得分:-1)

视图中的我的html代码

<tr class='test_record'>\
                <td><input type='text' name='test_name[]' value='<?= $lists['test_name'];?>' class='form-control'></td>\
                <td><textarea class='form-control' name='instruction[]' > <?= $lists['instruction'];?> </textarea>\
                </td>\
                <input type='hidden' name='test_id' value='<?= $lists['test_id'];?>'>\
                <td><button class='close remove_test_record' aria-hidden='true'>&times;</button></td>\
            </tr>";

我在codeignitor中的php代码是

$count = count($test_name); 


for ($i = 0; $i < $count; $i++) { 
    $i_update = array('test_name' => $test_name[$i], 'instruction'=> $instruction[$i]);
    $result = $this->Common_model->save_updated_info($i_update,array('test_id' =>$update['test_id']),'patients_test');
}


redirect("Doctor/doc_patient_profile/".$update['patient_id']);