PHP Talk: CRUD Part 3

Pada PHP Talk: CRUD Part 2, kita telah membahas tuntas tentang proses Create pada aplikasi berbasis CRUD. Kali ini saya akan meneruskan pembahasan CRUD ini ke proses Update. Jika anda belum mengikuti tutorial yang sebelumnya, silahkan ikuti terlebih dahulu. Berikut permalink dari rentetan tutorial ini:

Jika teman-teman sudah mengikutinya dan sukses, mari kita lanjutkan tutorialnya…

1. Starter

Untuk mengedit/update data yang berada dalam database, kita memerlukan form tambahan dimana kita akan mengganti value dari setiap fieldnya. Maka buatlah folder “edit” pada folder C:\xampp\htdocs\tutorialphp.  Jika sudah buatlah 2 file .php dengan nama masing-masing:

  1. index.php, digunakan untuk mendisplay dan memasukan data yang baru.
  2. edit.php, digunakan untuk menangkap data hasil masukan user dan meng-update sebuah baris pada database sesuai dengan datakey-nya.

2. Mengubah Halaman utama.

Bukalah file index.php pada folder C:\xampp\htdocs\tutorialphp, yang telah kita buat di PHP Talk: CRUD Part 1. Kita akan menambahkan field pada table yang telah kita buat. Tambahkan script berikut pada pembukaan table:

<strong>Action</strong>

Field ini nantinya akan berisi menu edit untuk setiap baris. Lalu tambahkan pada body tablenya, field berikut:

<td><a href='edit/?id=".$row['nim']."'>Edit</a></td>

Disinilah menu edit itu akan satu persatu pada setiap baris di table anda. Dalam filed tersebut, terdapat link dengan nama edit. Dimana edit tersebut akan di-link-kan ke folder edit dengan membawa datakey dari setiap baris. Datakeys disini kita gunakan nim dari setiap mahasiswa pada baris tersebut. Maka disana terdapat script .$row[‘nim’]. . Jadi ketika menu edit ini diklik, maka secara langsung header page akan mengarah pada file index.php pada folder edit sambil membawa variable id menggunakan method GET.

Jika kedua hal diatas sulit untuk dilakukan manual, tidak usah dilakukan. Namun replace saja index.php/halaman utama anda dengan script dibawah ini:

<!--?php <br ?-->
include 'config.php';

if($_GET['status']=='berhasil'){

echo "Berhasil memasukan data ke dalam database!";

} else if($_GET['status']=='gagal'){

echo "Gagal memasukan data ke dalam database!";

}

mysql_select_db("tutorial", $con) or die("Databasenya Error");

$table="mahasiswa"; //nama table

$query = mysql_query("SELECT * FROM $table"); // MySql Query buat me-retrieve semua field

echo "</pre>
"; // inisialisai table buat html, caption untuk tablenya, dan nama-nama field yang akan diinformasikan datanyawhile($row = mysql_fetch_array($query,MYSQL_BOTH)){echo "";}// ini adalah perulangan pada php script yang mengulang script didalam while selama tidak ada data lagi dalam array, karena data yang diambil dari database berupa array.echo "
<table><caption>Data Mahasiswa</caption>
<thead>
<tr>
<th><strong>NIM</strong></th>
<th><strong>Nama</strong></th>
<th><strong>Prodi</strong></th>
<th><strong>Alamat</strong></th>
<th><strong>Action</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>".$row['nim']."</td>
<td>".$row['nama']. "</td>
<td>
".$row['prodi']."</td>
<td>".$row['alamat']."</td>
<td><a href="edit/?id=&quot;.$row[">Edit</a></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4">Dari database Mahasiswa</td>
</tr>
</tfoot>
</table>
<pre>
";

?>

<a href="insert/">Tambah Data Mahasiswa</a>

3. Membuat Form untuk mengedit data.

Bukalah file index.php pada folder edit dan isikan dengan script berikut;

<!--?php include "../config.php"; mysql_select_db("tutorial", $con) or die("Databasenya Error"); $table="mahasiswa"; //nama table $query = mysql_query("SELECT * FROM $table WHERE nim = '".$_GET['id']."'"); if($row = mysql_fetch_array($query,MYSQL_BOTH)){ ?-->

<!--?php } else echo "Tidak ada datakey.."; ?-->

Spertinya teman-teman sudah familiar ya dengan script diatas, yup script seperti diatas sudah pernah digunakan untuk me-retrieve data dari database yang telah kita lakukan pada PHP Talk: CRUD Part 1. Hanya diquery mySQL diatas terdapat Conditional Clause yaitu WHERE. Clause ini digunakan untuk mem-filter data hasil keluaran query tersebut berdasarkan datakey yang dikirimkan oleh halaman utama. Setelah selesai dengan script diatas, tambahkan diantara tag penutup dan pembuka php dengan script html berikut:

</pre>
<form action="edit.php" method="POST">
<table><caption>Edit Data Mahasiswa</caption>
<tbody>
<tr>
<th><strong>NIM : </strong></th>
<th><input type="text" name="nim" value="<?php echo $row['nim'];?>" readonly="readonly" /></th>
</tr>
<tr>
<th><strong>Nama : </strong></th>
<th><input type="text" name="nama" value="<?php echo $row['nama'];?>" /></th>
</tr>
<tr>
<th><strong>Prodi : </strong></th>
<th><input type="text" name="prodi" value="<?php echo $row['prodi'];?>" /></th>
</tr>
<tr>
<th><strong>Alamat : </strong></th>
<th><input type="text" name="alamat" value="<?php echo $row['alamat'];?>" /></th>
</tr>
<tr>
<th><input type="submit" value="Edit" /></th>
</tr>
</tbody>
</table>
</form>
<pre>

Diatas ini adalah gabungan script php dan html. Script html ini sebenarnya sama dengan script html untul membuat form pada file index.php di folder insert. Hanya disini ditambahkan attribute value-nya, dimana value tersebut didapatkan dari database sesuai dengan datakey yang dikirimkan oleh halaman utama. Coba perhatikan tag input yang pertama, disana terdapat attribute readonly=’readonly’ dimana attribut ini membuat tag input tidak dapat di utak-atik. Dikarenakan NIM adalah datakey pada table ini, sehingga nilainya tidak dapat diubah. Berikut script complete-nya dari file index.php ini:

<!--?php include "../config.php"; mysql_select_db("tutorial", $con) or die("Databasenya Error"); $table="mahasiswa"; //nama table $query = mysql_query("SELECT * FROM $table WHERE nim = '".$_GET['id']."'"); if($row = mysql_fetch_array($query,MYSQL_BOTH)){ ?--></pre>
<form action="edit.php" method="POST">
<table><caption>Edit Data Mahasiswa</caption>
<tbody>
<tr>
<th><strong>NIM : </strong></th>
<th><input type="text" name="nim" value="<?php echo $row['nim'];?>" readonly="readonly" /></th>
</tr>
<tr>
<th><strong>Nama : </strong></th>
<th><input type="text" name="nama" value="<?php echo $row['nama'];?>" /></th>
</tr>
<tr>
<th><strong>Prodi : </strong></th>
<th><input type="text" name="prodi" value="<?php echo $row['prodi'];?>" /></th>
</tr>
<tr>
<th><strong>Alamat : </strong></th>
<th><input type="text" name="alamat" value="<?php echo $row['alamat'];?>" /></th>
</tr>
<tr>
<th><input type="submit" value="Edit" /></th>
</tr>
</tbody>
</table>
</form>
<pre>
<!--?php } else echo "Tidak ada datakey.."; ?-->

4. Membaca data dari form dan meng-insertkan-nya kedalam database

Buka file edit.php dan masukan script berikut:

<!--?php include "../config.php"; $nama = $_POST['nama']; $nim = $_POST['nim']; $alamat = $_POST['alamat']; $prodi = $_POST['prodi']; mysql_select_db("tutorial", $con) or die("Databasenya Error"); if($query = mysql_query("UPDATE mahasiswa SET nim  = '$nim', nama = '$nama', prodi = '$prodi', alamat = '$alamat' WHERE nim = '$nim'")) { header( 'Location: ../?status=berhasil' ) ; } else header( 'Location: ../?status=gagal' ) ; mysql_close($con) ?-->

Secara garis besar, script ini tidak ada bedanya dengan script insert.php. Hanya saja query yang digunakan disana adalah query UPDATE. Query diatas akan meng-update data mahasiswa dengan value yang di-insert-kan oleh user dimana field nimnya harus senilai dengan nim dari datakey pada form. Ok jika smua’a sudah selesai, cobalah buka http://localhost/tutorialphp/. Klik menu edit pada salah satu baris di table. Dan isikan data yang baru sesuai dengan keinginan anda. Jika berhasil, maka akan terlihat hasilnya di halaman utama.

Sekian tutorial kali ini, selanjutnya saya akan melanjutkannya dengan membahas proses Delete pada aplikasi berbasis CRUD ini.

Anda bisa mendukung saya untuk tetap melakukan update tutorial dengan cara mem-follow blog saya, atau mem-follow twitter saya disini, bisa juga dengan meninggalkan komentar dan atau me-request tutorial yang anda inginkan. Best regards, eSDhee

Advertisements

One thought on “PHP Talk: CRUD Part 3

  1. Pingback: PHP Talk: CRUD Part 4 (FINAL) « eSDhee weBlog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s