Menghapus File Gambar Pada Database dan Folder Website
Teknik yang Saya gunakan untuk menyimpan sebuah gambar kedalam database adalah dengan menyimpan nama gambar didalam database sedangkan gambarnya disimpan di dalam sebuah direktori tertentu pada website. Prosesnya adalah ketika user upload sebuah gambar/foto menggunakan sebuah form upload, gambar akan direname/diberi nama, kemudian nama gambar disimpan didatabse lalu sesudah itu disimpan ke direktori website, mungkin tekniknya akan berbeda – beda tapi umumnya file gambar tidak akan disimpan secara langsung di dalam database, yang berada didatabase hanyalah file berupa nama gambar/foto.
Lihat juga :
- Script PHP Untuk Menghapus Data Dalam Tabel MySQL
- Upload, Tampil dan Delete Gambar di PHP (wajib baca tekniknya)
Oleh karena itu bila kita hanya menggunakan query untuk delete data saja seperti "delete from nama_tabel where='id'"; hanya akan menghapus nama gambar yang tersimpan didatabase sedangkan file aslinya tidak akan dihapus, dengan demikian kita juga memerlukan perintah tambahan untuk mendelete sebuah file didalam halaman website yaitu adalah dengan menggunakan perintah unlink(namafile). Nanti prosesnya adalah data di pecah dengan $variabel=mysql_fetch_array() lalu nanti diikuti dengan perintah $variabel[nama_kolom_gambar].Sehingga nanti perintahnya adalah unlink(“$variabel[gambar]”);
Bila data yang tersimpan didatabase hanya berupa nama gambar/fotonya tanpa dilengkapi dengan path(tempat menyimpan gambar) maka kita perlu tambahkan path gambar didalam perintah unlink. Contoh
unlink(“namafolder/$variabel[gambar]”);
Disimpan bersampa path/lokasi gambar |
Disiimpan hanya nama gambarnya saja |
Menghapus File Gambar Pada Database dan Folder Website
Supaya lebih mudah, saya akan memberikan sebuah contoh/studi kasus. Saya memliki sebuah File PHP yang berisi perintah untuk mendelete sebuah data. Kemudian database untuk fotonya menampung nama gambar yang tersimpan (tidak disertakan pathnya). Sturuktur database mengacu ke gambar dua diatas.
Script awal yang Saya gunakan untuk mendelete data gambar dalam database adalah seperti berikut
<?php
include('system/conf/koneksi.php');
$edit=$_GET['del'];
$sql=sprintf("delete from data_karyawan where id=%d",$edit);
$del=@mysql_query($sql,$koneksi);
if($del){
echo "<script>alert('Data berhasil dihapus!')</script>";
echo "<script>window.open('index.php?page=lihat','_self')</script>";
}else{
echo "Perubahan data gagal=<br/>".mysql_error();
}
?>
Perintah diatas hanya akan menghapus nama file gambar pada database, sedangkan bila gambar/foto yang tersimpan tidak akan terhapus didalam direktori gambar website. Bila menginginkan file gambar yang bersangkutan juga ikut terhapus, maka saya menambahkan parameter unlink didalam file diatas.
<?php
include('system/conf/koneksi.php');
$edit=$_GET['del'];
$sql=sprintf("delete from data_karyawan where id=%d",$edit);
$sql2="SELECT * FROM data_karyawan where id='$edit'"; //query dua
$hpsgbr=@mysql_query($sql2); //jalankan query
$jalankan=mysql_fetch_array($hpsgbr); //pecah dtanya
unlink("images/$jalankan[foto]"); //lalu hapus gambarnya, images merupakan letak direktori sedangkan $jalankan[foto] merupakan nama file gambar yang bersangkutan
$del=@mysql_query($sql,$koneksi);
if($del){
echo "<script>alert('Data berhasil dihapus!')</script>";
echo "<script>window.open('index.php?page=lihat','_self')</script>";
}else{
echo "Perubahan data gagal=<br/>".mysql_error();
}
?>
Apa yang saya jelaskan diatas hanya contoh saja, karena prosesnya mungkin ada yang tidak sesimpel itu, karena ada juga yang prosesnya adalah sebelum gambar dihapus file gambar dicek dulu apakah masih ada atau tidak. Untuk contoh lebih jelasnya bisa Anda download fcontoh sourcenya pada artikel Aplikasi Manajemen Karyawan
ow, kirain menghapus gambar di website itu tinggal hapus saja gambar yg telah diupload, tapi masih pakai perintah2 tertentu juga to.. hmm,, agak ribet ya mas. hehehe
ReplyDeleteDiluar Topik Kang...
ReplyDeleteKira-kira antara bootstrap dan codeigniter, lebih powerfull mana ya?
Bootstrap itu bisa dibilang framork juga sih yah,,, tapi itu keknya lebih ke front end,,, (tampilan) kalau CodeIgniter itu framework untuk disisi servernya,, pake PHP juga,,, jadi ndak bisa dibandingkan,,, karena keduanya itu beda,,, namun bisa disatukan kedalam satu kerangka kerja,,, untuk bangun aplikasi/web yang powerfull...
DeleteSepertinya Teknik yang digunakan sama dengan teknik yang saya gunakan juga dalam mengelola gambar yang ada di website yang saya kelola. Tutorialnya Mantap nich Mas...
ReplyDeleteIjin nyimak dulu mas soalnya kalo urusan beginian saya kurang paham
ReplyDeletekok saya bacanya rada rieut ya kang.. kalo gambar di web saya menghilang kenapa ya kang..? padahal ga pernah hapus lho..
ReplyDeletebermanfaat sekali utk blogger
ReplyDeleteSangat jelas cara menghapus file gambar pada databse nya apalagi disertai dengan video makin ngerti dah pengunjung.
ReplyDeleteGimana ya caranya menghapus file gambar di folder sekali banyak, misalkan saya akan menghapus yang tgl_entri di databasenya kurang dari 2017 (tgl_entri<='31-12-2017'), kalau pakai query, maka ditabelnya kehapus namun filenya gak kehapus...
ReplyDeleteSaya mikirnya, proses kodenya mungkin harus dibalik, maksudnya kita unlink dulu filenya baru delete di tabel
Deletebang ini saya mau tanya saya kan nyoba ngikutin cara bikin crud upload gambar sampe abis dari https://www.root93.co.id/2019/04/upload-tampil-dan-delete-gambar-di-php-part-2.html?m=1 dan saya mau nyoba buat masukin script hapus foto dalam folder juga kira kira harus dimasukin dimananya ya ?
ReplyDeletetolong dijawab ya kak
email saya : ahmadtsani145@gmail.com
sebenarnya ada banyak teknisnya mas, mas bisa eksekusi query hapus gambarnya dulu baru eksekusi unlink (pathgambar/file)
ReplyDeletemantap mamank
ReplyDelete