server.php
<?
User bernama syafii adalah user yang mampu melakukan perintah insert, delete
clan update, sedangkan user bernama iftah adalah user yang hanya mampu
melakukan perintah insert. Oleh karena itu, buat satu file lagi, semacam
server.php, tetapi untuk user iftah.
server 1. php
<?
$host = "localhost"; // hostname mysql
$user = "iftah"; // username
$pass = "123456789"; // password
$db = "php"; // database yang digunakan
<?
1
Simpan file tersebut clan jadikan satu folder saja. Perlu diingat bahwa penggunaan
file untuk disisipkan (include) ke dalam suatu halaman web bertujuan memperkecil
jumlah baris halaman, mengurangi penumpukan baris perintah clan juga untuk
mempermudah administrasi terhadap perubahan data-data yang terhubung dengan
user. ladi, untuk mengubah password dari user bernama syafii, Anda tidak perlu
membuka file satu per satu melainkan tinggal mengubahnya pada file server.php.
Hal itu bisa dilakukan karena semua halaman web akan menyisipkan file
server.php. Dengan alasan efisiensi inilah maka kita perlu memecah program
hingga menjadi bagian yang terkecil.
input_pengarang.html
<html>
<head>
<title>Masukkan Data Pengarang</title>
</head>
<body>
<h3 align="center">Form Data Pengarang</h3> <form method="post"
action="input_pengarang.php" ENCTYPE="MULTIPART/FORM-DATA">
<pre>
Masukkan Nama Pengarang : <input type="text"
name='°nama_pengarang">
<input type="hidden" name="MAX FILE SIZE" value="30000">
Masukkan Foto : <input type="file"
name="foto">
<input type=" submit" value= "Kirim">
</pre>
</form>
</body>
</html>
Karena form tersebut akan digunakan untuk mengirim file yang bisa saja
mempunyai banyak format, misalnya file gif, jpg atau jpeg atau file
2
gambar yang lain, maka perlu ditambahkan atribut ENCTYI'E="MULTIPART/FORM-
DATA pada tag <form>. Arti dari baris perintah:
adalah untuk membatasi ukuran file dalam byte yang di-upload. Nama pengarang
disimpan dalam variabel nama_pengarang clan foto pengarang disimpan dalam
variabel bernama foto.
Isi file input_pengarang.php adalah script untuk memasukkan data ke dalam database
beserta file foto yang sudah di-upload dan dikopi ke suatu folder. Namun, yang
disimpan ke dalam database hanya nama file. Sebelumnya, Anda perhatikan contoh
dan proses upload berikut:
Upload.html>
<html>
<head>
<title>Contoh Upload</title>
</head>
<body>
<h3 align=”center”>contoh Upload</h3>
<form method=”post”action=”upload.php”
ENCTYPE=”MULTIPART/FORM-DATA”>
<pre>
<input type=”hidden” name=”MAX_FILE_SIZE”
VALUE=”30000”>
Masukkan Foto : <input type=”file”
name=”foto”>
<input type=”submit”value=”Kirim”>
</pre>
</form>
</body>
</html>
3
File pemeroses upload.php merupakan inti dari proses upload. PHP versi 5
mempunyai fungsi khusus untuk menangani proses upload.
Upload.php
<?
Include (“server.php”):
If (SHTTP_POST_FILES[‘foto’]) {
echo “Nama File : “.$_FILES[‘foto’][‘nama’];
echo “<br>”;
echo”Type file :”.$_FILES[‘foto’][‘type’];
echo “<br>”;
echo “Ukuran File
“.round(($_FILES[‘foto’][‘size’]/1024)).”Kb”;
echo “<br>”;
echo “Nama file temporary
“.$_FILES[‘foto’][‘tmp_name’];
echo”<br>”;
echo “Kode error: “.$_FILES[‘foto’][‘error’];
copy($HTTP_POST_FILES[‘foto’][‘tmp-name’]
“image/”.$_FILE[‘foto’][‘name’]);
?.
File yang anda upload membawa 5 macam variable cara penanganan masing-
masing variable sama dengan penanganan array. Berikut ini daftar lengkap fungsi
php dalam menangani variable upload . Perlu diperhatikan bahwa contoh di atas
adalah file yang akan di uplod dan disimpan ke dalam variable $foto.
Variabel Keterangan
4
Kode errror upload
$pengarang= $ POST['nama_pengarang'];
$gambar = $ FILES['foto']['name'];
if((!empty($pengarang)) and ($ FILES['foto']['error']
__ "0„))
{
Baris perintah:
if (($HTTP POST_FILES['foto']) and
($ POST['nama_pengarang']))
digunakan untuk memeriksa apakah variabel foto sudah di-upload. Untuk itu,
digunakan $HTTP POST FILES['foto']. Pengiriman variabel nama_pengarang
diperiksa menggunakan method=post dengan perintah $ POST['nama_pengarang'].
Terkadang, kita harus memeriksa asal dan proses kedatangan setiap variabel.
Dengan demikian, aplikasi yang kita buat menjadi semakin aman.
$pengarang= $ POST['nama_pengarang'];
$gambar = $ FILES['foto']['name'];
5
if((!empty($pengarang)) and ($ FILES['foto']['error'] )
==”0”))
isi tanda petik kosong pada field kode_pengarang karena tanpa Anda isi pun, rekord
akan terisi secara otomatis. Kemudian, setelah nama file ($gambar) dimasukkan ke
dalam database, file tersebut dikopi ke dalam folder bernama images.
Setelah data dimasukkan maka akan memanggil file thanks.html. Untuk file
thanks.html, Anda dapat membuat halaman web yang berisi ucapan terimakasih
saja atau data telah dimasukkan dan juga link untuk mengisi lagi,
thanks.html
<html>
Terima kasih
</body>
</html>
6
Membuaf Form Input untuk Tabel Buku
input untuk label buku memang sedikit berbeda,Pembuatan for Perbedaannya
ialah bahwa form yang akan dibuat ini juga mengakses , Field pada tabel buku terdiri
dari ISBN, judul, tabel pengarangaran dan gambar. Variabel untuk field
kode_pengarang diambil dari tabel pengarang sehingga form yang akan dibuat
mempunyai korelasi langsung dengan tabel pengarang. Pada form pengisian data
buku, sistem pemasukan 9kan data untuk kode_pengarangtag <select> sehingga user
dapat memilih nama pengarang berdasarkan data yang dimasukkan. Oleh karena itu,
tabel pengarang haru s diisi terlebih dahulu seperti yang ditunjukkan pada contoh
sebelumnya. Berikut ini source code dari form inpu buku:
form input.php
<html>
<head><title>Input Data Buku </title>
</head>
<body>
<h3 align="center">Masukkan data buku </h3>
echo "<option
value=\ "$row[kode_pengarang] \ ">$row[nama_pengara ng]„,
}
<?
</select></td></tr>
<input type="hidden" name="MAX_FILE SIZE"
7
value ="30000">
<tr>
<td>Masukkan Cover buku</td><td>: <input
type="file" name="foto"></td>
<tr>
<td><input type=submit" value=" Kirim"><input type="reset' value=" Hapus"></td>
</tr>
</form>
</body>
</html>
Secara umum, pengisian data buku hampir sama dengan pengisian data pengarang,
yaitu proses upload file dengan batasan upload 30000 byte, Textbox untuk isian
ISBN mempunyai panjang karakter sebanyak 11 (maxlength-" 11 ") dan nama
variabelnya yaitu $isbn. Variabel $judul berisi judul buku yang mempunyai panjang
karakter sebanyak 50 (maxlength-"50"). Agar mudah dalam memahami cara mengisi
variabel pengarang, perhatikan contoh berikut:
</select>
8
Variabel yang akan
bernama kode_pengarang (<select name="kode_pengarang">). Kemudian penulis
akan menyisipkan file serverl.php karena halaman web ini hanya digunakan untuk
menampilkan data atau dengan kata lain hanya menggunakan perintah SQL select.
Untuk itu, penulis menggunakan koneksi ke database yang hanya memiliki
kemampuan tersebut.
dikirim
Setelah itu, query ke dalam database dilakukan.
Terkadang, untuk menampilkan semua field ke dalam database, orang jarang sekali
menyebutkan nama field. Orang lebih suka menggunakan tanda * (asterik) untuk
menginisialisasi pemanggilan semua field. Padahal, query dengan penyebutan nama
field mempunyai efisiensi yang lebih tinggi daripada tanda *. Nah, selanjutnya adalah
menampilkan data hasil query ke dalam halaman web.
while ($row=mysql fetch array($query))
{
echo "
<option
Penggalan baris perintah di atas merupakan inti dari output gambar 5.7. Yang
ditampilkan ke dalam halaman web ialah nama_pengarang, sedangkan yang
dimasukkan ke dalam database ialah kode_pengarang. Ketika user memilih
pengarang bernama M Syafii maka data yang dimasukkan ialah kode_pengarang
yang dimiliki oleh nama_pengarang=M Syafii. Penggunaan file upload sekiranya
sudah dibahas pada bagian sebelumnya clan secara teknis sama dengan form
pengisian pengarang. Gambar 5.8 di bawah ini merupakan output dari file form
input.php.
File pemroses form input.php ialah input buku.php. File input_buku.php mempunyai
source code yang tidak jauh berbeda dari file input_pengarang.php.
9
input _buku.php
<?
include ("server.php");
$kode_pengarang= $ POST['kode_pengarang'];
$gambar = $ FILES['foto']['name'];
$isbn = $ POST['isbn'];
$judul = $ POST['judul'];
if((!empty($kode_pengarang)) and
($-FILES ['foto']['error'] __ "0") and (!empty($isbn)) and
(!empty($judul)))
{
mysql_query ("insert into buku values
('$isbn','$judul','$kode_pengarang','$gambar') ") ;
?>
10
If((!empty($kode_pengarang))and
($_FILES[‘foto’][‘error’]==”0”)and (tempty($isbn))and (!empty($judul)))
{
valid clan mengirimkannya. Hal semacam ini sering penulis temui pada buku tamu
sebuah website yang menggunakan validasi dengan javascript. Untuk mengatasinya,
Anda dapat menyimpan halaman form pengisian dan menghapus javascript. Untuk
action, arahkan kepada URL lengkap misalnya action=http://www.url.com/input
bukutamu.php. Nah, sebagai antisipasi tindakan merugikan yang mungkin terjadi,
lakukan validasi atau pengecekan pada saat form dikirim, bukan pada saat akan
dikirim, dengan javascript.
Kembali ke penggalan baris perintah di atas. Untuk memeriksa apakah variabel sudah
diisi atau belum, Anda dapat menggunakan fungsi empty(). Jika masih ada variabel
yang kosong, akan tampil pesan:
<html>
</head>
<body>
<h3 align= "center">Lihat Data Pengarang</h3>
11
<table align="center" border=" 1" bordercolor="#dedede">
<tr>
<th>Nama Pengarang</th><th>Foto</th>
</tr>
<?
from pengarang";
$query = mysql_query ($sql,$koneksi); while ($row=mysql fetch
array($query))
{
echo "
<tr>
<td>$row[nama_pengarang]</td>
<td><img src=\"images/$row[foto]\"></td>
</tr>";
}
<?
</table>
</body>
</html>
Penulis menggunakan file serverl.php karena hanya digunakan untuk melihat rekord
dan menampilkannya. Cara menampilkan tidak terlalu
V-APLIKASI PERPUSTP
sulit, yaitu hanya perhatikan ialah
<td><img src=\"images/$row[foto]\"></td>
Output yang dihasilkan seperti gambar 5.13 di atas. Isi data pengaran sebanyak
mungkin. Pada file lihat_pengarang.php, terdapat sat kekurangan. Jika file dari foto
tidak terdapat di dalam folder image~ halaman web akan menampilkan tampilan
seperti:
Litrai Data Fengarang - Microsoft Internet Expl:.:
hktp:fjlocalhostJphpf6ab°l°205flihat_pengarang,php v
Gambar 5.14 File tidak dapat ditampilkan
12
<html>
</head>
<body>
<h3 align="center">Lihat Data Pengarang</h3>
<table align= "center" border=" 1"
bordercolor="#dedede">
<tr>
else
echo "<font color=\"red\">File tidak ada< /font>
</td>
</tr>";
}
?>
< /table>
</body>
</html>
13
File lihat_pengarang.php dengan file lihat_pengarangl.php hamp sama.
Perbedaannya terletak pada pemeriksaan file gambar. Unh pemeriksaan tersebut,
Anda dapat menggunakan fungsi file-exists().
if (file_exists("images/$row[foto]"))
Baris perintah di atas berguna untuk memeriksa apakah terdapat fi~ dengan alamat
lengkap di images/ $row[foto]. lika memang ac maka tampilkan file tersebut.
echo " <img src=\"images/$row[foto]\">";
Jika tidak, berikan pesan error.
echo “
<tr><td>$row[isbn]</td><td>$rowUudul]</td><td>$row[nama_pengarang]</td>
<td>";
if (file_exists("images/$row(gambar]"))
else
Dalam menampilkan rekord yang terdapat dalam database, perhatikan perintah SQL
yang digunakan. Untuk menampilkan data hanya pada satu tabel jelas sangat mudah
bagi kita semua, tetapi tidak demikian saat menampilkan data dari 3 tabel yang memuat
relasi antartabel. Misalnya, pada setiap tabel selain primary key, juga terdapat foreign
key. Semua itu tergantung pada perintah SQL yang digunakan. Ada satu tips
sederhana dalam menampilkan data. Jika Anda ingin menampilkan data, yang harus
dilakukan ialah mencoba perintah SQL Anda pada PHPMyAdmin. Jalankan perintah
SQL tersebut pada link yang sudah disediakan oleh PHPMyAdmin. Kemudian jika
output yang ditampilkan sesuai dengan kehendak Anda, baru Anda lakukan dengan
teknik pemrograman atau membuat file PHP tersebut.
Perintah SQL untuk menampilkan data buku beserta nama pengarang ialah:
14
$sql = "select buku.isbn,
buku.judul.
pengarang.nama_pengarang,
buku.gambar from buku,pengarang
where
buku.kode_pengarang=pengarang.kode_pengarang
Update
Proses update ialah proses memperbaharui data sesuai dengan kebutuhan
sekarang. Ada banyak cara untuk melakukannya. Misalnya, data ditampilkan
semua kemudian dicari yang kurang dan perlu diupdate, atau data dicari terlebih
dahulu dengan menggunakan fasilitas pencarian kemudian di-update. Pertama,
kita buat dengan cara yang mudah, yaitu data ditampilkan kemudian, dengan
menggunakan fasilitas link, menuju ke halaman form update.
<th>ISBN</th><th>Judul</th><th>Nama Pengarang</th><th>Cover
buku</th><th>Edit</th> </tr>
<?
buku.judul
pengarang.nama_pengarang,
15
where
buku.kode_pengarang=pengarang.kode_pengarang
$query = mysql_query($sql,$koneksi);
while ($row=mysql fetch array($query))
{
echo " <tr><td>$row[isbn]</td><td>$rowUudul]</td><td>$r ow[nama_pengarang]
</td>
<td>";
else
echo "
</td>
</body>
</html>
Perhatikan link baru yang ditambah;
<td>[<a
Untuk melakukan proses ini, harus dipahami bahwa update hanya berlaku pada 1
(satu) rekord untuk satu waktu. Jadi, Anda tidak bisa mengirim 2 variabel id
sekaligus pada file edit buku.php. Link di atas merupakan sebuah teknik pengiriman
variabel $row[isbn] untuk diproses pada file edit _buku.php. Dengan modal ISBN
inilah data akan di-update. Karena ISBN merupakan primary key, tidak akan ditemui
data kembar.
16
Perhatikan gambar 5.20. Ketika kursor diarahkan ke link edit maka t,' yang terbentuk
ialah http:/llocalhostlphp/bab%2( edit buku.php?id=9797310809. Arti dari link
tersebut ialah nomor IS 9797310809 akan dikirim ke file edit buku.php dan
id=97973108 artinya nilai variabel id ialah 9797310809.
edit buku.php
<html>
buku.judul,
pengarang, nama_pengarang,
buku.gambar from buku, pengarang
where
buku.kode_pengarang=pengarang.kode_pengarang
and
buku.isbn='$id'
$query = mysql_query($sql,$koneksi);
if (mysql num rows($query) == "0") echo "Jangan macam-
macam -macam";
else
{
echo "
<form method=\"post\" action=\"update buku.php\"
ENCTYFE=\"MULTIPART/FORM-DATA\">";
$row=mysql fetch array($query);
echo "
<tr>
<td>Judul</td>
<td><input type=\"text\" name=\'judul\"
value=\ "$row(j udul] \"
maxlength=\"50\" size=\"50\">< /td>
17
</tr>
<tr><td>Pengarang</td><td>";
$sql_pengarang "select
kode_pengarang,nama_pengarang $query_pengarang
$query _pengarang = mysql_query
($sql_pengarang,$koneksi);
echo "<select name=\"kode_pengarang\>”;
while
($row_pengarang=mysql fetch array($query_pengaran g))
{
if ($row_pengarang[kode_pengarang] $row[kode_pengarang])==
($row[kode-pengarang))
{
echo
value=\"$row_pengarang[kode_pengarang] \"
selected>$row_pengarang[nama_pengarang]";
}
else
{
echo value=\"$row_pengarang[kode_pengarang] \"
>$row pengarang[nama_pengarang]";
echo "</select></td></tr>";
echo "
</td></tr>
<tr> <td>Cover</td>
<td><input
name=\"cover\">*</td></tr>
<tr>
<input type=\"hidden\" name=\"cover asli\"
18
value=\"$row(gambar] \">
<input type=\"hidden\" name=\"isbn\"
</td>
</tr>
</table>
</form>
Pilih Gambar jika ingin mengganti gambar yang lama. Jika Anda kosongi, gambar
yang lama tetap akan digunakan.
Inti dari perintah SQL di atas ialah menampilkan semua data yang dimiliki oleh
buku yang mempunyai isbn='$id'. Untuk menangani perubahan variabel $id
langsung pada address bar maka perlu adanya pemeriksaan apakah ada data
buku yang memiliki rekord isbn=$id.
$query = mysql_query($sql,$koneksi);
jika tidak ada data buku yang mempunyai isbn=$id maka dapat dipastikan bahwa
user telah menggantinya dari address bar. Program harus mampu mengatasi baris
perintah seperti di atas. langan lupa
19
bahwa proses update buku juga berlaku pada gambar atau cov sehingga format tag
<form> menjadi:
Mengapa harus menggunakan $row[isbn] dan bukan $id langsung? Jika kita
menggunakan $id maka apabila variabel 1 diganti melalui address bar, ia akan
mengikuti perubahan ti Tetapi, jika diisi $row[isbn] akan tampil ISBN dari buk
mempunyai isbn=$id,
<input type=\"teXt\" name=\' jt value=\"$row[judul \"
Value=\$row[judul]\”
maxlength=\"50\" size=\"50\">
Textbox di atas tetap menyertakan judul yang lama. lika ingin judul baru maka Anda
dapat menghapusnya langsung dari text mengisinya dengan yang baru.
$sql_pengarang = “select
kode_pengarang,nama_pengarang from pengarar
$query_pengarang = mysql_query
($sql_pengarang,$koneksi);
else
{
echo
value= \ "$row_pengarang[kode_pengarang] \"
>$row pengarang[nama_pengarang]";
}
20
}
echo "</select>
echo "
<option value=\"$row_pengarang[kode_pengarang]\"
selected>
$row_pengarang[nama_pengarang]";
Dengan sintaks di atas, jika terdapat buku milik M Syafii maka saat diedit pada tag
<select> akan secara otomatis memilih nama M Syafii.
Ada beberapa variabel yang harus disimpan sebagai syarat untuk melakukan proses
update, yaitu:
Sesuai dengan namanya, cover asli ialah variabel yang berisi cover asli dari buku.
Jika cover dari buku tersebut di-update maka cover yang lama harus dihapus dari
folder images. Nah, untuk itu, cover asli harus disertakan agar pada file
update_buku.php, file lama dapat dihapus.
update_buku.php
<? if (($ POST['kode_pengarang']) and ($ POST['isbn']) and ($ POST['judul']) and ($
POST['cover asli ]))
{
include ("server. php");
$kode_pengarang= $ POST['kode_pengarang'];
$gambar = $ FILES['cover']['name'];
$isbn = $ POST['isbn'];
$judul = $ POST['judul'];
name=\"cover asli\"
21
name=\"isbn\"
if ($ FILES['cover']['error'] =="4")
{
mysql_query ("update buku set
judul='$judul',kode_pengarang='$kode_pengarang' where isbn='$isbn"');
}
header ("location:thanks. html");
} else echo "Variabel kosong";
} else
echo "Fatal error";
?>
Dalam melakukan proses update data, perlu dipertahankan keamanan data atau
variabel yang akan di-update karena jika Anda salah, efek yang ditimbulkan bisa
sangat fatal. Contoh sederhana ialah kesalahan dalam melakukan query. Berikut ini
pengalaman penulis ketika membuat kesalahan atau kurang memberikan statement
update:
22
mysql_query ("update buku set judul='$judul',kode_pengarang='$kode_pengarang'
");
Akibat perintah SQL di atas, semua data akan di-update sesuai dengan statement
tersebut. Artinya, Anda akan mempunyai data atau rekord yang sama. Letak
kesalahannya adalah tidak adanya klausa where sehingga perlu ditambahkan where
isbn='$isbn'. Proses update data memang sangat penting. Perlu diingat bahwa
kemudahan end-user dalam meng-update data atau rekord menjadi sangat utama
karena yang menjalankan aplikasi yang Anda buat bisa saja adalah orang yang tidak
mengerti pemrograman atau bahkan tidak mengerti komputer sama sekali. ladi,
buatlah sebuah form update yang banyak memberikan kemudahan.
Setelah selesai melakukan coding maka perlu dilakukan pengujian ulang terhadap
file-file yang sudah kita buat.
Pertama ialah memilih buku yang ingin diedit. Buka pada browser file lihat bukul.php.
Dari gambar di atas, tampak bahwa teknik injection tidak berpengaruh. Perhatikan
bahwa pada source code file edit buku.php terdapat sintaks:
Penulis menampilkan ISBN bukan dari variabe! id melainkan dari hasil query ke dalam
database. Jika penulis menggunakan:
Anda perhatikan pada gambar 5.30 di atas, perintah unlink memang berfungsi
untuk menghapus file. File migrasi+linux+copyl.jpeg merupakan cover buku
dengan ISBN 9797310809 clan karena cover diupdate maka fife tersebut harus
dihapus.
Selanjutnya ialah membuat proses update untuk tabel pengarang. Prosesnya sama
dengan update tabel buku karena juga terdapat proses upload.
lihat_pengarang2.php
<html>
<head><title>Edit Data Pengarang</title> <Jhead>
<body>
23
<table align=" center" border=" 1"
bordercolor="#dedede">
<tr>
<th>Nama
Pengarang</th><th>Foto< jth><th>Edit</th>
{
echo
<tr>
<td>$row[nama_ Pengarang]</td><td>”:
If (file_exis[“images/$row[foto]”)){
Echo”<img scr=\”image/$row[foto]\”>;}
Else{
Echo “<font color=\”red\”>file tidak ada </font>”;}
Echo”
</td><td>]</td>
</tr>”;
}
</table>
</body>
</html>
Tidak banyak perubahan pada source code di atas Karena mengubah dari
file lihat_pengarang.php penulis hanya menambahkan link.
Update_pengarang.php
<?
24
If (($_POST[kode_pengarang “]]
($_post[‘nama_pengarang’])
And ($_POST[‘foto_asli’]))
{
Include(“server.php”);
$gambar=$_FILES[‘foto’][‘name’];
$kode_pengarang=$_POST[‘kode_pengarang’];
$nama_pengarang=$_POST’[nama_pengarang’];
If((!empty($kode_pengarang))
(!empty($nama_pengarang ))
{
If(($_FILES[foto’][error’]==”0”))
{
Mysql_query (“update pengarang set nama_pengarang=
$gambar Where kode_pengarang = $kode_pengarang “);
Copy ($HTTP_POST_FILES[‘foto’][tmp_name’]
“image/”$_FILES[‘foto_asli’]);
Unlink (“image/”.$_POST’foto_asli’]);
}
Else
If ($_FILES[‘foto’][error’] ==”4”)
{
Mysql_query (“update pengarang set nama_pengaarang= $nama
_pengarang =$nama_pengarang’ where
Kode_pengarang= $kode_pengarang”);
}
Header (“location:thanks.html”);
Else
Echo”Fatal error”;
?>
File update_pengarang juga mirip dengan file update buku.php. Semua itu penulis
lakukan semata-mata agar tidak perlu terlalu repot untuk mengetikkan ulang
perintah, melainkan tinggal memodifikasi dan menyimpannya dengan nama file yang
lain. Ouput updatie pengarang sama dengan update pada tabel buku. lika gambar
tidak diisi maka tetap gunakan gambar yang lama tetapi sebaliknya jika gambar diisi
maka gambar yang lama dihapus dari folder images.
Delete
Selain memperbaharui, kadangkala data juga perlu dihapus. Misalnya, terdapat data
transaksi dengan kesalahan penulisan dan kemudian transaksi tersebut di-update.
25
Jika pada halaman web yang menampilkan transaksi terdapat link untuk di-update
maka bisa saja terjadi korupsi di dalamnya atau terjadi update nilai transaksi dengan
Nat mengambil untung. Dalam kasus seperti itu, setiap transaksi yang memiliki
kesalahan harus memiliki link untuk delete, bukan update. ladi, pada menu transaksi
nanti terdapat 2 macam opPrasi, yaitu memasukkan data transaksi atau
menghapusnya. Dari contoh kasus tersebut, Anda harus mempelajari manipulasi
database terakhir, yaitu menghapus rekord.
Untuk menghapus rekord pada tabel buku dan pengarang secara teknis sama
dengan update. Hanya saja, perintah untuk delete lebih sederhana dan teknis
pemrogramannya juga lebih mudah. Kita awali dari tabel buku.
<html>
<th>ISBN</th><th>Judul</th><th>Nama Pengarang</th><th>Cover
buku</th><th>Edit</th> </tr>
<?
echo "
<tr><td>$row[isbn]</td><td>$row(judul]</td><td>$r ow[nama_pengarang] </td>
<td>";
if (file exists("images/$row[gambar]"))
else
26
Jumlah data <? echo mysql num rows($query); ?>
</body>
</html>
File lihat buku3.php sama dengan file lihat buku2.php. Penulis hanya
menambahkan link untuk delete saja.
[<a
Href=\"delete_buku.php?id=$row[isbn] \">Delete</a>]
Untuk menghapus gunakan field ISBN. Nanti pada file delete buku.php, data
dengan ISBN tersebut akan dihapus menggunakan perintah SQL.
delete buku.php
<?
Proses untuk menghapus rekord pada tabel buku juga melibatkan penghapusan file
gambar. Karena rekord pada tabel buku memuat file gambar maka ketika rekord
dihapus, file gambar tersebut juga harus dihapus dari folder images.
27
$hapus-gambar = unlink (Images/". $row[gambar]);
where
Proses untuk menghapus rekord pada tabel buku juga melibatkan penghapusan file
gambar. Karena rekord pada tabel buku memuat file gambar maka ketika rekord
dihapus, file gambar tersebut juga harus dihapus dari folder images.
Bagian di atas ialah untuk menghapus gambar. Cara mendapatkan nama file tentunya
dengan melakukan query. Perlu diketahui bahwa untuk menghapus gambar, Anda
tidak dapat melakukannya setelah rekord dihapus• Penghapusan file gambar tidak
dapat dilakukan karena untuk mendapatkan file gambar, Anda harus tahu rekord file
tersebut. Jika gambar sudah dihapus maka rekord juga bisa dihapus.
$query = mysql_query($sql,$koneksi);
28
header
("location:konfirmasi hapus.php?pesan=Data ``tidak
<?
echo $pesan;
?>
Urutan proses penghapusan rekord dan gambar secara jelas ditunjukkan pada contoh
berikut:
Pertama pilih rekord yang ingin dihapus.
Pencarian
Dalam satu bulan jika aplikasi yang dibuat benar-benar dimanfaatkan sesuai
fungsinya maka rekord yang terisi bisa mencapai ratusan atau bahkan ribuan. Untuk
menghapus satu rekord saja, Anda mungkin periu melihat seluruh isi rekord, baru
kemudian Anda klik link untuk menghapus. Namun, jika Anda ingin mencari rekord
dengan judul buku tertentu, tidak mungkin jika harus melihat seiuruh rekord
kemudian mencari yang sesuai satu per satu. Bila memahami perintah SQL dan
tahu bagaimana memanfaatkan perintah tersebut dalam dunia pembuatan aplikasi
web maka Vita dapat menggunakan mekanisme semacam search engine.
Pencariannya dapat dilakukan dengan menggunakan bermacam cara, misalnya
berdasarkan nama pengarang, judul buku atau juga berdasarkan field-field yang lain.
Semua itu akan mempermudah end-user dalam menggunakan program yang Anda
buat.
Pertama buat dahulu form untuk pencarian.
cari.html
<html> <head><title>Pencarian data</title></head> <body>
<h3 align="center">Pencarian Perpustakaan</h3>
<form method="post" action= "cari.php"> <table align="center">
<tr>
<td>Pencarian berdasarkan</td>
<td><select name="field">
<option value= "">-pilih jenis
Pencarian -
<option value="kode_pengarang">Kode -
Pengarang
<option value="nama_pengarang">Nama
Pengarang
<option value="judul">Judul Buku
<option value="isbn">ISBN
</select>
29
</td>
<td><input
name="keyword"></td>
<td><input
value="Search"></td>
</table> </form>
</body>
</html>
User nanti dapat memilih mekanisme pencarian berdasarkan nama pengarang,
judul, ISBN atau kode pengarang. Dengan memberikan fleksibilitas yang tinggi,
hal ini akan mempermudah pengoperasian. Setelah memilih jenis pencarian,
masukkan keyword pada textbox. Kemudian, data diproses di file cari.php clan
ditampilkan lengkap beserta link edit clan delete.
cari.php
<?
if ((empty($field)) or (empty($keyword))) {
echo "Cek kembali form pencarian Anda
else
{ ?> <html>
<head><title>Lihat Data buku</title>
</head>
<body>
<?
Include
("server l.php");
if ($field =_ "nama_pengarang")
{
$where = "where pengarang.nama_pengarang like '%$keyword%'
and buku.kode_pengarang=pengarang.kode_pengarang";
}
Else{
$where = "where pengarang.nama_pengarang like '%$keyword%' and
buku.kode_pengarang=pengarang.kode_pengarang";
}
sql = "select buku.isbn,buku.judul,buku.kode_
pengarang,buku.gambar,pengarang.nama_pengarang from buku, pengarang
$where";
$query=mysql_query($sql.$koneksi);
If(mysql_num_row($query)==”0”
Echo”pencarian dengan kata kunci ‘$keyword’ pada
‘$field’tidak ditemukan”;
Else
{
Echo “<h3 align=\”center\”>Daftar bukuperpustakan</h3>
Pencarian dengan kata kunci ‘$keyword’ pada filed ‘$field’ ditemukan
“.mysql_num_row($query).”<br>
30
<tabel boerder=\”1\” bordercolor=\”#dedede\” align=\”center\”>
<tr>
<tht>kode
Pengarang</th><th>ISBN</th><th>Judul</th><th>Nama
pengarang</th><th>Cover
Buku</th><th>edit</th>
</tr>
While ($row=mysql_fetch_array($query))
<table border=\”1\”
{
Echo”
<tr><td>$row[kode_pengarang]</td><td>$row[isbn]</td><td>$row[judul]
</td><td> $row[judul]</td><td>$row[nama_pengarang]
</td>
<td>
If(file_exists[“images/$row[gambar]”))
Echo”<img src=\”images/$rowgambar]\>”;
Else
Echo “file tidak ada”;
Echo”
</td><td>[<a
Href=\”edit_buku.php?id=$row[isbn]\”>Delete</a>]
</td></tr>”;
}
}
?>
</tabel>
</body>
</html>
<?
}
?>
31