Overview
In this example, we will learn how to update a record or data from the MySQL database using the CodeIgniter 4.
Controller: User.php app/Controllers/User.php
Model: UserModel.php app/Models/UserModel.php
View: list.php app/Views/list.php
edit.php app/Views/edit.php
/app/Config/Routes.php
$routes->add('user/list', 'User::list');
$routes->get('user/edit/(:num)', 'User::save/$1');
$routes->post('user/update', 'User::update');
app/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 "<td><a href="<?php echo base_url('user/edit'.$row->id) ?>">Edit</a></td>";
echo "</tr>"; $i++; } ?>
</table>
app/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>
/app/Controllers/User.php
<?php
namespace App\Controllers;
use App\Models\UserModel;
class User extends BaseController {
public function __construct() {
$db = db_connect();
$this->userModel = new UserModel($db);
}
public function add() {
$this->load->view('add');
}
public function list() {
$data['result'] = $this->userModel->list();
echo view('list', $data);
}
public function edit($id) {
$data['result'] = $this->userModel->get_user($id);
echo view('list', $data);
}
public function update() {
$id = $this->request->getPost('txtId');
$first_name = $this->request->getPost('txtLastName');
$last_name = $this->request->getPost('txtLastName');
$email = $this->request->getPost('txtEmail');
$data = [
'first_name' => $first_name,
'last_name' => $last_name,
'email' => $email,
];
$result = $this->userModel->update($id, $data);
if($result) {
echo "User details are updated successfully.";
} else {
echo "Something went wrong";
}
}
}
/app/Models/UserModel.php
<?php
namespace App\Models;
use CodeIgniter\Model;
use CodeIgniter\Database\ConnectionInterface;
class UserModel extends Model {
protected $db;
public function __construct(ConnectionInterface &$db) {
$this->db =& $db;
}
public function list() {
return $this->db
->table('user_info')
->get()
->getResult();
}
public function get_user($id) {
return $this->db
->table('user_info')
->where(["id" => $id])
->get()
->getRow();
}
public function update($id, $data) {
return $this->db
->table('app_info')
->where(["id" => $id])
->set($data)
->update();
}
}