The UPDATE statement is used to update data in the MySQL table

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Note: The WHERE clause specifies which data should be updated. If you omit the WHERE clause, all records will be updated!

1. Create a list.php file in applications/views/ directory

<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>

2. Create an edit.php file in applications/views/ directory

<html>
<head>
<title>Update user details</title>
</head>
 
<body>
 <?php
  if($result) {
  ?>
	<form method="post" id="update-user-form" 
	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 } ?>

	<!-- Script -->
	<script 
	src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
	</script>

	<script type="text/javascript">
		$(document).ready(function(){
			$("#update-user-form").submit(function(e) {

				var data = $("#update-user-form").serialize();
				var url = "<?php echo base_url('user/update_user'); ?>";

				// Syntax
				// $(selector).post(URL,data,function(data,status,xhr),dataType);

				$.post(
					url,
					data,
					function(result) {
						alert(result.message);
					},
					'json');
			});
		});
	</script>

</body>
</html>

3. Create a model file User_model.php in the applications/models/ directory.

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);
	}
	
}

4. Create a controller file User.php in the applications/controllers/ directory.

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_user() {
		$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 json_encode(["message" => "User details are updated successfully."]);
		} else {
			echo json_encode(["message" => "Something went wrong"]);
		}
	}
}