Fungsi update ini sangat penting di dalam sebuah website, karena tidak mungkin kita menghapus data yang lama dan melakukan insert terhadap data yang baru hanya karena kesalahan inputan. Oleh karenanya, dibutuhkan fungsi update database yang dapat mengedit data sehingga tidak perlu untuk menghapus data yang telah disimpan sebelumnya.
Nb: Jika ingin melihat seluruh tutorial Codeigniter anda dapat mengunjungi tutorial membuat web dengan Codeigniter.
Update Database dengan Codeigniter
Seperti biasa saya akan menulisakan urutan source cara membuat fungsi update database dengan codeigniter ini secara berurutan dari controller, model, dan views.Jika anda telah membaca tutorial sebelumnya, yaitu membuat fungsi delete record database, sebenarnya konsep yang ada tidak berbeda jauh.
Controller
Fungsi di dalam controller ini cukup banyak, karena kita harus menampilkan data yang ada di dalam database, kemudian memberikan fungsi untuk update, dan terakhir membuat fungsi untuk menyimpan update tersebut.user_controller.php
<?php
class
User_controller
extends
CI_Controller{
function
__Construct()
{
parent ::__construct();
}
function
user()
{
$this
->load->model(
'user_model'
);
$data
[
'judul'
] =
'Daftar User'
;
$data
[
'daftar_user'
] =
$this
->user_model->get_user_all();
$this
->load->view(
'daftar_user'
,
$data
);
}
function
edit_user(
$id_user
)
{
$data
[
'judul'
]=
'Update Data User'
;
$this
->load->model(
'user_model'
);
$data
[
'edit'
]=
$this
->user_model->edit_user(
$id_user
);
$this
->load->view(
'edit_user'
,
$data
);
}
function
simpan_edit_user()
{
$id_user
=
$this
->input->post(
'id_user'
);
$nama_lengkap
=
$this
->input->post(
'nama_lengkap'
);
$username
=
$this
->input->post(
'username'
);
$password
=
$this
->input->post(
'password'
);
$email
=
$this
->input->post(
'email'
);
$alamat
=
$this
->input->post(
'alamat'
);
$data
[
'judul'
] =
'Update Data Codeigniter'
;
$this
->load->model(
'user_model'
);
$data
[
'edit'
] =
$this
->user_model->simpan_edit_user(
$id_user
,
$nama_lengkap
,
$username
,
$password
,
$email
,
$alamat
);
$data
[
'notifikasi'
] =
'Data telah berhasil disimpan'
;
$this
->load->view(
'notifikasi'
,
$data
);
}
}
Model
Sama seperti controller, fungsi di dalam model juga cukup banyak, tetapi saya rasa tidak perlu untuk menjelaskannya satu persatu. Anda dapat memahaminya dengan membaca nama fungsinya.user_model.php
<?php
class
User_model
extends
CI_Model{
function
get_user_all()
{
$query
=
$this
->db->query(
"SELECT * FROM user ORDER BY id_user DESC"
);
return
$query
->result();
}
function
edit_user(
$id_user
)
{
$q
=
"SELECT * FROM user WHERE id_user='$id_user'"
;
$query
=
$this
->db->query(
$q
);
return
$query
->row();
}
function
simpan_edit_user(
$id_user
,
$nama_lengkap
,
$username
,
$password
,
$email
,
$alamat
)
{
$data
=
array
(
'id_user'
=>
$id_user
,
'nama_lengkap'
=>
$nama_lengkap
,
'username'
=>
$username
,
'password'
=>
$password
,
'email'
=>
$email
,
'alamat'
=>
$alamat
);
$this
->db->where(
'id_user'
,
$id_user
);
$this
->db->update(
'user'
,
$data
);
}
}
Views
Di dalam views ini terdapat dua halaman view, yang pertama adalah untuk menampilkan halaman awal, kemudian yang kedua digunakan untuk melakukan edit data, dan terakhir adalah notifikasi bahwa data berhasil disimpan.Views yang pertama adalah daftar_user.php yang digunakan untuk menampilkan seluruh data yang ada di dalam database.
daftar_user.php
<html>
<head>
<title><?php
echo
$judul
; ?></title>
</head>
<body>
<h1>Daftar User</h1>
<table border=
"1"
>
<thead>
<tr>
<th>Nama Lengkap</th>
<th>Username</th>
<th>Email</th>
<th>Alamat</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
foreach
(
$daftar_user
as
$user
){
?>
<tr>
<td><?php
echo
$user
->nama_lengkap; ?></td>
<td><?php
echo
$user
->username; ?></td>
<td><?php
echo
$user
->email; ?></td>
<td><?php
echo
$user
->alamat; ?></td>
<td><?php
echo
'<a href="'
.base_url().
'index.php/user_controller/edit_user/'
.
$user
->id_user.
'">Edit</a>'
?></td>
</tr>
<?php } ?>
</tbody>
<tfoot>
<tr>
<th>Nama Lengkap</th>
<th>Username</th>
<th>Email</th>
<th>Alamat</th>
<th>Action</th>
</tr>
</tfoot>
</table>
</body>
</html>
Views yang kedua adalah edit_user.php yang digunakan untuk mengedit inputan record yang telah tersimpan di dalam database.
edit_user.php
<html>
<head>
<title><?php
echo
$judul
; ?></title>
</head>
<body>
<h1>Update Data User</h1>
<?php
$att
=
array
(
'id'
=>
'biodata-form'
);
echo
form_open(
'user_controller/simpan_edit_user'
,
$att
);
echo
form_hidden(
'id_user'
,
$edit
->id_user);
?>
<table>
<tr>
<td>Nama Lengkap</td>
<td><input type=
"text"
name=
"nama_lengkap"
value=
"<?php echo $edit->nama_lengkap; ?>"
/></td>
</tr>
<tr>
<td>Username</td>
<td><input type=
"text"
name=
"username"
value=
"<?php echo $edit->username; ?>"
/></td>
</tr>
<tr>
<td>Password</td>
<td><input type=
"password"
name=
"password"
value=
"<?php echo $edit->password; ?>"
/></td>
</tr>
</tr>
<td>Email</td>
<td><input type=
"text"
name=
"email"
value=
"<?php echo $edit->email; ?>"
/></td>
</tr>
<tr>
<td>Alamat</td>
<td><textarea name=
"alamat"
style=
"height: 80px;"
><?php
echo
$edit
->alamat; ?></textarea></td>
<tr>
<td></td>
<td><input type=
"submit"
value=
"Simpan"
/></td>
</tr>
</table>
</form>
</body>
</html>
notifikasi.php
<html>
<head>
<title><?php
echo
$judul
; ?></title>
</head>
<body>
<p><?php
echo
$notifikasi
; ?></p>
</body>
</html>
Tidak ada komentar:
Posting Komentar