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 $row) { echo "<tr>"; echo "<td>".$i. "</td>"; echo "<td>".$row->first_name."</td>"; echo "<td>".$row->last_name."</td>"; echo "<td>".$row->email."</td>"; echo "</tr>"; $i++; } ?> echo "<td><a href="<?php echo base_url(‘user/edit’.$row->id); ?>">Edit</a> </td>"; </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
id
to theedit
method 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
update
method in theUser
controller.
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_info
table.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_model
to interact with the database. - list(): Loads the
list.php
view with all users fetched from the database. - edit($id): Loads the
edit.php
view with a specific user’s details to update. - update(): Handles form data submission and calls the
update()
method in theUser_model
to update the record.
Summary
- Views: Created
list.php
for displaying users andedit.php
for updating user information. - Model: Created
User_model.php
for fetching and updating data in theuser_info
table. - Controller: Created
User.php
to handle requests, load views, and process updates.