In CodeIgniter 3, the update() method is used to modify existing records in the database. The UPDATE SQL command is used to change the data in one or more columns of a table.
Basic Syntax for MySQL Update Query
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE some_column = some_value;
Note: The WHERE clause specifies which records should be updated. If you omit the WHERE clause, all records in the table will be updated!
Step-by-Step Implementation
To demonstrate how to update records, we’ll create a simple application with the following structure:
File Structure
application/
│
├── controllers/
│ └── User.php
│
├── models/
│ └── User_model.php
│
└── views/
├── list.php
└── edit.php
Step 1: Create list.php in application/views/
The list.php file will display the list of users and provide an option to update each user’s information.
File: application/views/list.php
<table width="600" border="1" cellspacing="5" cellpadding="5"> <tr style="background:#CCC"> <th>Sr No</th> <th>First_name</th> <th>Last_name</th> <th>Email Id</th> <th>Update</th> </tr> <?php $i=1;
foreach($result as $key => $row) { echo "<tr>"; echo "<td>".++$key."</td>"; echo "<td>".$row->first_name."</td>"; echo "<td>".$row->last_name."</td>"; echo "<td>".$row->email."</td>"; echo "<td><a href="<?php echo base_url('user/edit/'.$row->id);?>">Edit</a></td>";
echo "</tr>";
$i++;
} ?> </table>
Explanation
- The table displays a list of users with their details.
- The “Update” column contains links to edit each user’s information by passing their
idto theeditmethod in the controller.
Step 2: Create edit.php in application/views/
The edit.php file provides a form to update user details.
File: application/views/edit.php
<html>
<head>
<title>Update user details</title>
</head>
<body>
<?php
if($result) {
?>
<form method="post"
action=”<?php echo base_url(‘user/update’); ?>”>
<table width="600" border="1"
cellspacing="5" cellpadding="5">
<tr>
<td width="230">Enter Your Name </td>
<td width="329">
<input type="hidden" name="txtId"
value="<?php echo $result->id; ?>"/>
<input type="text" name="txtFirstName"
value="<?php echo $result->first_name; ?>"/></td>
</tr>
<tr>
<td>Enter Your Email </td>
<td><input type="text" name="txtLastName"
value="<?php echo $result->last_name; ?>"/></td>
</tr>
<tr>
<td>Enter Your Mobile </td>
<td><input type="text" name="txtEmail"
value="<?php echo $result->email; ?>"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="update"
value="Update"/></td>
</tr>
</table>
</form>
<?php } ?>
</body>
</html>
Explanation
- The form displays the user’s current details fetched from the database.
- Upon submission, the form data is sent to the
updatemethod in theUsercontroller.
Step 3: Create User_model.php in application/models/
The User_model handles all database operations, including fetching and updating user records.
File: application/models/User_model.php
class User_model extends CI_Model {
/*Select multiple records*/
function list() {
$this->db->select([“*”]);
$this->db->from(‘user_info’);
$query = $this->db->get();
return $query->result();
}
/*Select single record*/
function get_user($id) {
$this->db->select([“*”]);
$this->db->from(‘user_info’);
$this->db->where([“id” => $id]);
$query = $this->db->get();
return $query->row();
}
/*Update single record*/
public function update($id, $data) {
$where = [“id” => $id];
return $this->db->update(‘user_info’, $where, $data);
}
}
Explanation
list(): Fetches all users from theuser_infotable.get_user($id): Fetches a specific user’s details using their ID.update($id, $data): Updates a user’s record based on the ID and data passed.
Step 4: Create User.php in application/controllers/
The User controller handles the request and response flow, including loading views and interacting with the model.
File: application/controllers/User.php
class User extends CI_Controller {
public function __construct() {
/*call CodeIgniter's default Constructor*/
parent::__construct();
/*load model*/
$this->load->model('User_model');
}
public function list() {
$data[‘result’] = $this->user_model->list();
$this->load->view(‘list’, $data);
}
public function edit($id) {
$data[‘result’] = $this->user_model->get_user($id);
$this->load->view(‘list’, $data);
}
public function update() {
$id = $this->input->post(‘txtId’);
$first_name = $this->input->post(‘txtLastName’);
$last_name = $this->input->post(‘txtLastName’);
$email = $this->input->post(‘txtEmail’);
$data = [
‘first_name’ => $first_name,
‘last_name’ => $last_name,
‘email’ => $email,
];
$result = $this->user_model->update($id, $data);
if($result) {
echo “User details are updated successfully.”;
} else {
echo “Something went wrong”;
}
}
}
Explanation
- Constructor: Loads the
User_modelto interact with the database. - list(): Loads the
list.phpview with all users fetched from the database. - edit($id): Loads the
edit.phpview with a specific user’s details to update. - update(): Handles form data submission and calls the
update()method in theUser_modelto update the record.
Summary
- Views: Created
list.phpfor displaying users andedit.phpfor updating user information. - Model: Created
User_model.phpfor fetching and updating data in theuser_infotable. - Controller: Created
User.phpto handle requests, load views, and process updates.
