santosh santosh - 3 months ago 25
PHP Question

how to update form data in codeigniter

hey guys i am new in codeigniter.
I am using codeigniter for this project. i have not getting how to update form data in the database.i have inserting ,showing data in the databse is done . but i cant understand how to update data in the database.plz

my controller:

class User extends CI_Controller {

public function __construct() {
// Call the Model constructor
parent::__construct();
$this->load->model('usermodel');
}

public function insert() {
$this->load->view('userview');

if ($this->input->post('submit')) {

$this->usermodel->save();
}
}

public function display() {
$data = array();
$data['result'] = $this->usermodel->get_contents();
$this->load->view('usergrid', $data);
}

public function edit() {
$data = array();
$get = $this->uri->uri_to_assoc();
$data['result'] = $this->usermodel->entry_update( $get['id'] );

$this->load->view('useredit', $data);
if ($this->input->post('submit')) {

$this->usermodel->entry_update1($get['id']);
}
}


}


model:

<?php

class Usermodel extends CI_Model {

public function __construct() {
// Call the Model constructor
parent::__construct();
}

public function save() {

//print_r($this->input->post('name'));

$data = array(
'name' => $this->input->post('name'),
'age' => $this->input->post('age'),
'address' => $this->input->post('address')
);
//var_dump($this->db);

$this->db->insert('user', $data);
}

public function get_contents() {
$this->db->select('*');
$this->db->from('user');
$query = $this->db->get();
return $result = $query->result();
}


public function entry_update( $id ) {

$this->db->select('*');
$this->db->from('user');
$this->db->where('id',$id );
$query = $this->db->get();
return $result = $query->row_array();

}
public function entry_update1($id) {
$data = array(

'name' => $this->input->post('name'),
'age' => $this->input->post('age'),
'address' => $this->input->post('address')
);

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

}

}
?>


view:

<html>
<head>
<title>user registration</title>
</head>
<body>
<form action="edit" method="POST" name="myform">
<input type="hidden" name="id" value="<?php echo $result['id']; ?>">
username :<input type="text" name="name" value="<?php echo $result['name'] ?>"></br>
age :<input type="text" name="age" value="<?php echo $result['age'] ?>"></br>
Address :<input type="text" name="address" value="<?php echo $result['address'] ?>"></br>

<input type="submit" value="update" name="submit">
</form>
</body>

</html>


Thank you in advance for your help.

Answer

You are only passing $id in

$this->usermodel->entry_update1($get['id']);

and in function u did

public function entry_update1($id) {
    $this->db->where('id', $id);
    $this->db->update('user', $data);
}

so you have to pass $data also in you function call

$this->usermodel->entry_update1($get['id'], $data);

public function entry_update1($id, $data) {
    $this->db->where('id', $id);
    $this->db->update('user', $data);
}
Comments