简体   繁体   中英

I can't update data in a database Codeigniter

I can't update data in a database.i don't know what happend.please help me. Display data Press the edit button.But i can not edit data on the database.

I have posted the code below:

Controller.php

public function ajax_update()
{
     $data = array(
            'placename' => $this->input->post('placename'),
            'description' => $this->input->post('description'),
            'tel' => $this->input->post('tel'),
            'latitude' => $this->input->post('latitude'),
            'longtitude' => $this->input->post('longtitude'),
            'placetype_id' => $this->input->post('placetype_id'),
            'province_id' => $this->input->post('province_id'),

        );
    $this->tblplace->update(array('placeid' => $this->input->post('placeid')), $data);
    echo json_encode(array("status" => TRUE));
}

Modal.php

 public function save($data)
{
    $this->db->insert('tblplace', $data);
    return $this->db->insert_id();
}

public function update($where, $data)
{
    $this->db->update('tblplace', $data, $where);
    return $this->db->affected_rows();
}

I can get data from the database to show in the textbox. But can't update data.I need to help.Thank you.

Your Controller:

public function ajax_update()
{
    //You should also check the post array.
     $ajax_post_data = $this->input->post();
     log_message('debug', 'Ajax Post Data Array:' . print_r($ajax_post_data, TRUE)); 

    $placeid = $this->input->post('placeid');

     $data = array(
            'placename' => $this->input->post('placename'),
            'description' => $this->input->post('description'),
            'tel' => $this->input->post('tel'),
            'latitude' => $this->input->post('latitude'),
            'longtitude' => $this->input->post('longtitude'),
            'placetype_id' => $this->input->post('placetype_id'),
            'province_id' => $this->input->post('province_id'),

        );
    $this->load->model('tblplace');
    $updte_status = $this->tblplace->update($placeid, $data);
    if($updte_status == TRUE){
        echo json_encode(array("status" => true));
    } else {
       echo json_encode(array("status" => false)); 
    }
}

In Model:

public function update($where, $data)
{

    $this->db->where('id', $where)
             ->update('tblplace', $data);

    log_message('debug', 'Last Update Query:' . print_r($this->db->last_query(), TRUE));
    log_message('debug', 'Affected row count:' . print_r(count($this->db->affected_rows()), TRUE));
    if ($this->db->affected_rows() === 1) {
        return TRUE;
    }else{
        return FALSE;
    } 
}

Hope this is clear and it will help you to update the data.

There is no where condition in your update function

public function update($where, $data)
    {
        $this->db->where($where);
        $this->db->update('tblplace', $data);
        return $this->db->affected_rows();
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM