2016-02-26 123 views
-1

我不知道我在哪里出错了,但请耐心等待,这是点击保存按钮后出现的网址,http://localhost/gabbyville/tenant/contact/update/contact/save都想发生,是从数据库更改行中的现有数据。谁能帮帮我吗?如何使用codeigniter正确更新数据库中的一行

这里是控制器

public function update($id) 
{ 

    $contact['contact'] = $this->Contacts_model->get_all(); 
    $contacts['contacts'] = $this->Contacts_model->get_by_id($id); 


    $data['content'] = $this->load->view("tenant/contacts",$contacts,TRUE); 
    $data['content'] = $this->load->view("tenant/contacts",$contact,TRUE); 
    $data['curpage'] = $this->curpage; 
    $this->load->view('template1',$data);    

} 

public function save($id) 
{ 
     $data = array(

      'first_name' => $this->input->post('first_name'), 
      'last_name' => $this->input->post('last_name'), 
      'postal_address' => $this->input->post('postal_address'), 
      'company_name' => $this->input->post('company_name'),     
      'company_url' => $this->input->post('company_url'), 
      'industry' => $this->input->post('industry'), 
      'phone_number' => $this->input->post('phone_number'), 
     ); 

     $this->Contacts_model->update($this->uri->segment(), $data); 

     redirect($this->view_folder.$this->curpage, 'refresh'); 

} 

这里模型

function get_by_id($id) 
{ 
    $this->db->where($this->id, $id); 
    return $this->db->get($this->table)->row(); 
} 
function update($id, $data) 
{ 
    $this->db->where($this->id, $id); 
    $this->db->update($this->table, $data); 
} 

这里是从我的观点

<form action="contact/save" method="post"> 


<div class="row "> 
    <input type="text" class="form-control mBottom2 mTop2" name="first_name" placeholder="First Name" value="<?php echo $contacts->first_name?>"> 
    <input type="text" class="form-control mBottom2" name="last_name" placeholder="Last Name" value="<?php echo $contacts->last_name?>"> 
    <input type="text" class="form-control mBottom2" name="postal_address" placeholder="Postal Address" value="<?php echo $contacts->postal_address?>"> 
    <input type="text" class="form-control mBottom2" name="company_name" placeholder="Company Name" value="<?php echo $contacts->company_name?>"> 
    <input type="text" class="form-control mBottom2" name="company_url" placeholder="Company URL" value="<?php echo $contacts->company_url?>"> 
    <input type="text" class="form-control mBottom2" name="industry" placeholder="Industry" value="<?php echo $contacts->industry?>"> 

    <ul class="row contact"> 
    <li class="mBottom2 clearfix"> 
     <input type="text" class="form-control pull-left" name="phone_number" placeholder="Phone Number" value="<?php echo $contacts->phone_number?>"> 

     <div class="i-checks pull-left"> 
     <label><input type="checkbox"><i></i></label> 
     </div> 
    </li> 

    <li class="mBottom2 clearfix"> 
     <input type="text" class="form-control pull-left" placeholder="Enter New Phone Number"> 

     <div class="i-checks pull-left"> 
     <label><input type="checkbox"><i></i></label> 
     </div> 

     <a><i class="fa fa-trash-o"></i></a> 
    </li> 

    <li class=""> 
     <button type="submit" class="btn btn-w-m btn-primary">Add New</button> 
    </li> 
    </ul> 
    </form> 
    <ul class="row contact"> 
    <li class="mBottom2 clearfix"> 
     <input type="text" class="form-control pull-left" placeholder="Email"> 

     <div class="i-checks pull-left"> 
     <label><input type="checkbox"><i></i></label> 
     </div> 
    </li> 

    <li class="mBottom2 clearfix"> 
     <input type="text" class="form-control pull-left" placeholder="Enter New Email"> 

     <div class="i-checks pull-left"> 
     <label><input type="checkbox"><i></i></label> 
     </div> 

     <a><i class="fa fa-trash-o"></i></a> 
    </li> 

    <li class="mBottom2"> 
     <button type="button" class="btn btn-w-m btn-primary">Add New</button> 
    </li> 
    </ul> 
</div> 
+0

发送参数保存像'HTTP方法://本地主机/ gabbyville /租户/接触/更新/联系人/保存/ $ ID' – santosh

+0

我在想我错误的原因之一是因为该网址,不应该是'http:// localhost/gabbyville/tenant/contact/save/$ id' ? – Beldion

回答

0

仅使用一个模型来更新或插入数据的形式进入表格:

模型应该是这样的:

public function save($data = array()) 
{ 
    if(isset($data['id']) && ((int)$data['id'] > 0)) 
    { 
    $this->db->where('id', (int)$data['id']); 
    $this->db->update('table_name', $data); 

    $id = $data['id']; 
    } 
    else 
    { 
    $this->db->insert('table_name', $data); 

    $id = $this->db->insert_id(); 
    } 

    return $id; 
} 

而且从控制器发送值模型是这样的:

$data = array(
    'id' => ($this->input->post('id')) ? $this->input->post('id') : 0, 
    'first_name' => $this->input->post('first_name'), 
    'last_name' => $this->input->post('last_name'), 
    'postal_address' => $this->input->post('postal_address'), 
    'company_name' => $this->input->post('company_name'),     
    'company_url' => $this->input->post('company_url'), 
    'industry' => $this->input->post('industry'), 
    'phone_number' => $this->input->post('phone_number'), 
); 
+0

我的错误,我所要做的只是删除表单上的动作,对不起... – Beldion

相关问题