Penggunaan seleksi untuk menampilkan database menggunakan OOP telah penulis jelaskan sebelumnya. OOP dalam php 5 ini telah terbukti ampuh dalam menghasilkan source code yang efisien untuk menangani manajemen database. Tentu hambar rasanya jika penggemar sayur asam memakannya tanpa ada sedikitpun rasa garam di dalamnya. Nah begitu juga dengan artikel penulis sebelumnya, menampilkan database dengan OOP masih belum cukup tanpa pengetahuan selanjutnya mengenai bagaimana melakukan update dan delete record pada database menggunakan OOP ini. Oleh karena itu di sinilah penulis akan jelaskan sedikit penggunaan OOP untuk menghandle database. Untuk mempelajarinya mari buat databasenya terlebih dahulu :
-- simple cms database create database simplecms ; use simplecms ; create table article( id int(4) primary key auto_increment, category varchar(225), article_title varchar(225) ); insert into article values('','web design', 'Web Design Make Over with CSS'); insert into article values('','graphic design','CorelDraw the handy tool'); insert into article values('','flash animation','Make a splash water animation');
Ya, langsung saja penulis berikan contoh kasusnya, script intinya, index.php, dan biasanya script seperti ini digunakan sebagai halaman admin. Tentunya admin disini dapat melakukan update dan delete record database.
<?php $mysqli = new mysqli("localhost", "root", "", "simplecms"); if (mysqli_connect_errno()) { echo("Nggak bisa konek : ".mysqli_connect_error()); exit(); } $cat = $mysqli->prepare("select id, category, article_title from article order by id"); $cat->execute(); $cat->bind_result($id, $category, $article_title); ?> <html> <head> <title>Database in OOP Way ; Seleksi Data dengan mySqli</title> </head> <body><table border='0' width='40%'> <caption><h3>SIMPLECMS CONTROL PANEL :</h3></caption> <tr><th>No</th><th>Category</th><th>Title</th></tr> <?php while ($cat->fetch()) echo "<tr><td>".$id."</td><td>".$category."</td>"."<td>".$article_title."</td><td><a href=?yang_ini_diedit=ya&id_nya=" .$id.">EDIT</a></td><td><a href=?yang_ini_didelete=ya&id_nya=".$id.">DELETE</a></td></tr>"; ?> </table> <hr width='39%' align='left'/> <?php if ($_REQUEST['yang_ini_didelete'] == 'ya') { echo "Wah... record ".$_REQUEST['id_nya']." bener-bener mau di hapus ya ?" ; echo "<form action='?delete_langsung_lah=ya' method='POST'> <table><input type='hidden' name='id' value=".$_REQUEST['id_nya']."> <tr><td><input type='submit' value='ya' name='submit'></td></tr></table> </form>"; } else if ($_REQUEST['delete_langsung_lah'] == 'ya') { $id_delete = $_POST['id']; $cat = $mysqli->prepare("delete from article where id=?"); $cat->bind_param('i',$id); $id = $id_delete; $cat->execute(); echo "Database berhasil dihapus ... Anda akan diredirect dalam 2 detik"; echo "<meta http-equiv='refresh' content='2;url=index.php'>"; } else if ($_REQUEST['yang_ini_diedit'] == 'ya') { $cat = $mysqli->prepare("select id, category, article_title from article where id=?"); $cat->bind_param('i',$id); $id = $_REQUEST['id_nya']; $cat->execute(); $cat->bind_result($id, $category, $article_title); echo "<caption>Yang mau diedit...</caption>"; echo "<table><form action='?update_langsung_lah=ya' method='POST'>"; while ($cat->fetch()) { echo "<tr><td>Category : </td><td><select name='category'><option value=".str_replace(" ","_",$category).">".$category."</option></select></td></tr>"; echo "<tr><td>Title : </td><td><textarea name='title' cols='51' rows='7'>"; echo $article_title ; } echo "</textarea></td></tr>"; echo "<input type='hidden' name='id' value=".$_REQUEST['id_nya'].">"; echo "<tr><td></td><td><input type='submit' name='submit' value='update'></td></tr>"; echo "</form></table>"; } else if ($_REQUEST['update_langsung_lah'] == 'ya') { $category = str_replace("_"," ",$_POST['category']); $title = $_POST['title']; $id = $_POST['id']; $cat = $mysqli->prepare("update article SET category ='$category', article_title = '$title' where id=?"); $cat->bind_param('i',$id); $cat->execute(); echo "Database berhasil diupdate ... Anda akan diredirect dalam 2 detik"; echo "<meta http-equiv='refresh' content='2;url=index.php'>"; } ?> </body> </html>
Tampilannya nanti akan seperti ini :
Potongan source code di bawah ini digunakan untuk menampilkan database dengan cara OOP. Seperti yang pernah penulis jelaskan dalam artikel pertama mengenai penggunaan OOP dalam PHP 5 untuk memanage database.
$mysqli = new mysqli("localhost", "root", "", "simplecms"); if (mysqli_connect_errno()) { echo("Nggak bisa konek : ".mysqli_connect_error()); exit(); } $cat = $mysqli->prepare("select id, category, article_title from article order by id"); $cat->execute(); $cat->bind_result($id, $category, $article_title);
Penjelasan detilnya dapat dilihat di artikel sebelumnya. Di sini penulis akan menjelaskan beberapa fungsi baru OOP dalam PHP 5. Lihat kembali fungsi tersebut pada baris ini :
... $cat = $mysqli->prepare("delete from article where id=?"); $cat->bind_param('i',$id); $id = $id_delete; $cat->execute(); echo "Database berhasil dihapus ... Anda akan diredirect dalam 2 detik"; echo "<meta http-equiv='refresh' content='2;url=index.php'>";
...
Di dalam barisan tersebut terdapat kalimat pembentuk query sql yang sedikit berbeda, yaitu :
$cat = $mysqli->prepare("delete from article where id=?");
Terdapat tanda '?' sebagai perwakilan dari parameter syarat. Tanda tanya ini nantinya akan didefinisikan sebagai satu syarat dalam satu variable menggunakan fungsi bind_param(), sehingga jika sebuah query didefinisikannya seperti ini :
cat = $mysqli->prepare("delete from article where id=?");
maka, harus terdapat fungsi bind_param() sesudahnya, seperti :
$cat->bind_param('i',$id);
Sehingga 2 baris kalimat tersebut sama halnya dengan query biasa, jika dalam query biasa maka hasilnya seperti ini :
$cat = "delete from article where id='$id'";
Setali 3 uang. :D. Ya ya ya ... tapi coba perhatikan kembali fungsi bind_param pada kalimat tersebut :
$cat->bind_param('i',$id);
Dalam parameter pertama fungsi bind_param di isi dengan 'i'.
Kenapa dengan 'i' ?, i ini adalah perwakilan dari variable yang bertipe integer. Dalam query seperti ini delete from article where id='$id', mustahil jika mengisinya dengan string, kenapa ? lihat struktur tablenya. :D, hasilnya nanti akan 0 jika menggunakan string. Adapun type dari parameter tersebut antara lain yaitu :
i : ini untuk variable yang bertipe integer
s : ini untuk variable yang bertipe string
d : ini untuk variable yang bertipe double
b : ini untuk variable yang bertipe blob.
Ya kita lompat ke baris berikutnya :
$id = $id_delete;
Statement ini hanyalah sebuah assignment, memenuhi syarat sebelumnya.
Selanjutnya adalah menjalankan querynya, eksekusi langsung :D , yakni :
$cat->execute();
Kembali muncul satu pertanyaan, bagaimana jika menggunakan update database dalam oop ? Silahkan lihat kembali baris di bawah ini :
$cat = $mysqli->prepare("update article SET category ='$category', article_title = '$title' where id=?"); $cat->bind_param('i',$id); $cat->execute();
Sepertinya sudah jelas ya. :).
Definisikan terlebih dahulu querynya :
$cat = $mysqli->prepare("update article SET category ='$category', article_title = '$title' where id=?");
Penuhi syarat query tersebut :
$cat->bind_param('i',$id);
Jalankan querynya :
$cat->execute();
Sudah jelas ya? Jika masih ada yang ditanyakan silahkan layangkan email anda ke sini :
alkemail@gmail.com.
Script diatas dapat di download di sini …
Dedicated for ilmuwebsite e-learning community.
Sumber dari situs Ilmu Website dalam kategori php kuliah dengan judul Update, Delete Database with OOP
HARIFIN A. TUMPA TERPILIH MENJADI KMA
JAKARTA-HUMAS. Wakil Ketua Mahkamah Agung Bidang Non Yudisial, Harifin A. Tumpa, ditetapkan menjadi ketua Mahkamah Agung Terpilih dalam rapat paripurna Mahkamah Agung dengan agenda khusus pemilihan ketua [...]MA Hukum 17 Hakim Nakal
JAKARTA-HUMAS. Mahkamah Agung menjatuhkan sanksi kepada 17 orang Hakim `nakal` di berbagai Pengadilan yang ada di Indonesia, setelah mereka terbukti melakukan pelanggaran dalam menunaikan tugasnya [...]KMA, WKMA BIDANG YUDISIAL DAN WKMA BIDANG NON YUDISIAL MENGUCAPKAN SUMPAH DI HADAPAN PRESIDEN - RI.
JAKARTA-HUMAS, Selasa, 10 Februari 2009 Ketua Mahkamah Agung Harifin A Tumpa, Wakil Ketua Bidang Yudisial Abdul Kadir Mappong dan Wakil Ketua Bidang Non Yudisial Ahmad Kamil, mengucapkan sumpah [...]KABUA : “BARANG MILIK NEGARA HARUS ADA ADMINISTRASINYA”
JAKARTA-HUMAS. “Penatusahaan SABMN seluruh Pengadilan haruslah secara kontinyu, dan asset yang dimiliki di masing-masing Eselon I mulai saat ini sudah jelas kepemilikannya dan sudah selayaknya [...]KERJASAMA RI-AS DI BIDANG PERADILAN
WASHINGTON DC-HUMAS. Hubungan Amerika Serikat dan Indonesia beberapa tahun belakangan ini berjalan semakin baik. Banyak hal dari Indonesia, seperti masalah penanganan HAM, pelaksanaan supremasi hukum, pemberantasan korupsi dan lain-lain [...]Acara Syukuran Peningkatan Kelas
Jepara, Acara syukuran kenaikan kelas I B yang diselenggarakan pada tanggal 09 Desember 2008 bertempat di Pengadilan Negeri Jepara, JL. KHA. FAUZAN No. 04 Jepara,berlangsung sangat meriah dan lancar sampai selesainya acara [...] Grab this Widget ~ Blogger Accessories Custumized by Yuniarto Rahardjo
0 komentar
:f :D :) ;;) :x :$ x( :?
:@ :~ :| :)) :( :s :(( :o Posting Komentar