基于代码点火器中的某些字段更新mysql数据库

时间:2014-04-12 20:38:13

标签: php mysql codeigniter

这是我的数据的MVC流程。在模型中,我想要我的显示器'要根据'名称'进行更新的字段领域。 $ gadget_id包含'名称'并在此基础上我希望'显示'要从$ updateDisplay的值更新的字段。但我得到的错误是显示'字段已更新,但不是基于' name'这是$ gadget_id。

模型

 function updateText($gadget_id, $updateDisplay){
        $data = array(
           // 'name'=>$gadget_id,
            'display'=>$updateDisplay
        );
       // $this->db->update('gadgets',array('name'=>$gadget_id, 'display' => $updateDisplay));

         $this->db->update('gadgets',$data);
         $this->db->where('name',$updateDisplay);
    }

控制器

 function updateText(){
        if ($this->session->userdata('logged_in')) {
         $this->load->model('database_model');
        $data['gaget']= $this->database_model->get_gaget();
         $data['meta'] = $this->dbmodel->get_meta_data();


        $default_template = $this->input->post('display');
        $updateDisplay = trim($default_template, "/");

        $gadget_id = $this->input->post('gadget_id');
        //echo $gadget_id;

        $this->database_model->updateText($gadget_id, $updateDisplay);
         //$this->session->set_flashdata('mess','Data added sucessfully !!! ');
         $this->load->view('bnw/templates/header', $data);
        $this->load->view('bnw/templates/menu', $data);
         $this->load->view('bnw/gadget/gadgetsListing',$data);
        $this->load->view('bnw/templates/footer', $data);


        } else {
        redirect('login', 'refresh');
    } 

    }

视图

 <div id='sub_gadget'>                     
                      <div id='title_in_collection'><?php echo $data->name; ?></div>
                      <div id='description_in_collection'><?php echo $data->type;?>     </div>                
            Where to display:
            <?php echo form_open('gadgets/updateText'); ?>
                <select name="display">
                <?php 

                foreach($var as $temp)
                {
                    echo "<option value=".$temp."/>".$temp."</option>";

                }
                ?>
                </select>
            <input type="hidden" value="<?php echo $data->name; ?>" name="gadget_id">
                <input type='submit' value='Add Gadget' id='btn' name='submit'>
                <?php echo form_close(); ?>

1 个答案:

答案 0 :(得分:0)

由于$gadget_id拥有name,因此查询应该是这样的 -

function updateText($gadget_id, $updateDisplay)
{
    $data = array(
        'display'=>$updateDisplay
    );

     $this->db->where('name',$gadget_id);
     $this->db->update('gadgets',$data);
}

如果$gadget_id确实包含该名称,那么您应该将变量名称更改为$gadget_name