Membuat Auto Deletion (Hapus Otomatis) Data Dengan Script PHP
September 10th, 2008 | by rosihanari |
Cetak Artikel Ini
Terima kasih mas Niko atas pertanyaannya di komentar di salah satu artikel yang saya posting, karena pertanyaan Anda telah memotivasi saya untuk membuat artikel ini. Baik para pecinta setia blog.rosihanari.net, kali ini saya akan memberikan tutorial bagaimana membuat script PHP untuk menghapus data secara otomatis setelah selang beberapa waktu (menggunakan satuan hari). Sebagai gambaran, misalkan hal ini kita terapkan di buku tamu (Maaf mas Niko, karena studi kasusnya tentang buku tamu. Untuk studi kasus berita sesuai request Anda, konsepnya sama kok). Dalam buku tamu tersebut, misalkan kita buat kebijakan bahwa lama postingan setiap entri buku tamu diset hanya tampil selama 3 hari. Setelah 3 hari, maka entri buku tamu tersebut akan terhapus secara otomatis dari database. Nah… kira-kira begitu gambarannya.
Konsep untuk membuat script auto deletion tersebut sangat simple, yaitu hanya memanfaatkan proses pengolahan waktu untuk mencari selisih antara waktu ketika data dientri dengan tanggal saat ini (current date). Dengan demikian untuk setiap data, harus diberi catatan waktu/tanggal kapan data tersebut dientri. Nah… jika selisih waktu tersebut melebihi batas waktu yang kita tentukan, maka jalankan proses penghapusan data.
OK… kita langsung saja buat script PHP untuk auto deletion ini dengan mengambil studi kasus tentang buku tamu. Terlebih dahulu kita siapkan tablenya:
CREATE TABLE guestbook (
id int(11) auto_increment,
nama varchar(20),
email varchar(20),
komentar text,
tanggal date,
PRIMARY KEY(id)
)
[/sourcecode]
Nah... dalam kasus ini dimisalkan sebelumnya kita sudah memiliki script untuk entri data buku tamu untuk pengunjung di web kita. Dan berikut ini contoh data yang sudah tersimpan dalam tabel di atas.
INSERT INTO guestbook VALUES
(1, 'Rosihan Ari', 'rosihanari@gmail.com',
'This site is great', '2008-06-01'),
(2, 'Dwi Amalia', 'amalia@gmail.com',
'Hello...', '2008-06-05'),
(3, 'Faza Fauzan', 'fauzan@fauzan.com',
'Great site dad...', '2008-06-08'),
(4, 'Nada Hasanah', 'nada@hasanah.com',
'I love u dad', '2008-06-09'),
(5, 'Muh. Ahsani Taqwim', 'ahsani@taqwim.com',
'Good job dad', '2008-06-10');[/sourcecode]
Setelah data dan tabel siap, selanjutnya kita bisa mulai membuat script auto deletionnya.
// koneksi ke mysql
mysql_connect("namahost","dbuser","dbpass");
mysql_select_db("dbname");
// setting timer
$lama = 3; // lama data adalah 3 hari
// proses penghapusan data
$query = "DELETE FROM guestbook
WHERE DATEDIFF(CURDATE(), tanggal) > $lama";
$hasil = mysql_query($query);
?>
[/sourcecode]
Perhatikan script di atas, terutama pada query SQL untuk penghapusan, bahwa syarat yang digunakan untuk penghapusan menggunakan function DATEDIFF(). Function ini digunakan untuk mencari selisih waktu (dalam satuan hari) antara current date dengan data yang ada dalam field tanggal pada tabel guestbook. Jika selisih hari tersebut melebihi lama waktu yang ditentukan (dalam hal ini 3 hari), maka data akan terhapus.
Misalkan tanggal hari ini adalah 10 Juni 2008 (2008-06-10), dan begitu script di atas dijalankan, maka data yang terhapus secara otomatis adalah record 1 dan 2.
Nah... mungkin di antara Anda ada yang menanyakan, berarti kita harus mengeksekusi script di atas tiap hari donk? dan menjadi semi otomatis jadinya. Mmmm.. hal ini bisa diatasi yaitu dengan mengincludekan script di atas ke halaman index atau bagian header situs Anda (dengan asumsi setiap hari ada pengunjung situsnya). Setiap kali orang mengunjungi situs Anda, pasti secara otomatis akan menjalankan script di atas.
OK... saya kira demikian artikel ini dibuat. Untuk saran, pertanyaan dan diskusi silakan posting komentar di bawah ini. Sekali lagi terimakasih mas Niko atas pertanyaan sekaligus requestnya.
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?
Beberapa artikel terkait
- Membuat Script PHP untuk Hapus Data dengan Multi Selection
- Membuat Paragraf Otomatis Dengan Script PHP
- Membuat Script PHP Untuk Auto Published Artikel Dengan Cron Jobs
- Membuat Auto Hyperlink dengan Script PHP
- Membuat Script PHP untuk Rekap Data dari Data Mentah
- Script PHP untuk Mencari Selisih Waktu dan Tanggal
- Ide Membuat Generator Kode Unik Incremental Otomatis
- Membuat Script SMS Auto Forward dengan PHP
- Script INSERT Data Dengan PHP dan MS. Access
- Import Data Format XML ke MySQL dengan Script PHP
Share this article on:
Kata kunci: PHP -





web ini sangat membantu.
[deleted]
simple script, but it’s very useful, great
mas ko skript yang auto deletionnya g jalan sh??
mhon bantuannya,makasih sebelumnya
Mas saya mau nanya skrip untuk membuat edit dan hapus, saya sedang memnbuat website form isian biodata tapi kendalanya saya belum bisa menghapus dan mengeit datanya saya hanya bisa menginputnya saja, mohon bantuannya, terima kasih.
to najamudin: untuk edit data silakan baca artikel saya di http://blog.rosihanari.net/script-php-untuk-mengedit-data-via-form/
mas artikelnya2 bagus2..
mas..aq lagi buat web yang stand alone..
cuman aq lagi mentok di bagian upload file yang berexstension txt secara otomatis..misal,file itu berada pada folder yang sudah ditentukan.selama ini aq selalu manua dengan cara di file phpnya,aq browse file.txt itu trz klik button submit..berhasil deh data tersebut masuk ke mysql..cuman yang aq perlukan sekarang gimana caranya upload file .txt itu ke mysql secara otomatis tiap jam 6 pagi..ditunggu jawabannya ya mas ke email saya.makasih
to anis: wah saya belum bisa tuh mas
bos, query untuk menghapus posting yg lama di database wordpress bagaimana?, please help me
Postingan terakhir si plaza-iklan di blognya: Trading Forex (online) Bisnis Investasi Dengan Bonus Hingga $175/10 lot
to plaza-iklan: wah kategori posting yang lama itu bagaimana? kalau via admin panel atau dashboard kan bisa mas?
kal0 digabungin dengan ajax pasti lebih p0werfull pak, seperti c0unter pnghitung mundur di ujian 0nline jd g hrz nunggu 0rg untk meng execusi. at0 membuat refresh 0t0matis di website, jd ketika wkt hbs mka dia mnjalankn pr0gram refreshny
mo tanya tentang auto refresh di SQL tu gmn?
to abuel: maaf saya belum tahu ttg masalah auto refresh di SQL.
mas aku ada sdikit problem nih…jd critanya ada sebuah web nih trus bisa ga kita buat script pada waktu jam tertentu web tersebut ngklick sendiri secara otomatis:studi kasus sebuah absensi Online nah kita buat sbuah script yg pada jam tertentu akan otomatis manggil link absen trus ngklik tombol absen tersebut….bisa g mas??..
bagus , untuk belajar dan meambah pengetahuan di bidang program….
untuk fajar:
mungkin itu nama’a auto redirect x ya..??
kalau memang iya..
coba anda gunakan fungsi meta content refresh..
mungkin seperti ini script’a..
*script ini saya gunakan di form edit jika proses pengeditan berhasil
<?
if ($_GET[action]=="sukses"){
echo "”;
$msg = ”
Sukses
Berhasil Merubah Data $nama.
“;
}
?>
function if bisa diganti dengan jam yang diinginkan..
tapi kalau untuk auto click saya masih belum tau..
tapi mungkin jika halaman tersebut hanya dibuka dengan redirect tadi..
anda bisa menggunakan javscript seperti ini..
function autoSubmit() {
document.edit.submit();
}
*taruh di bagian head..
dan ini untuk meload’a gunakan body onload..
*edit = nama form
yah kacauu..
ini saya ulang script’a..
<?
if ($_GET[action]=="sukses"){
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL=loket.php?nis=$_GET[nis]\">";
$msg = "<dl id='system-message'>
<dt class='message'>Sukses</dt>
<dd class='message fade'>
<ul>
<li>Berhasil Merubah Data $nama.>/li>
</ul>
</dd>
“;
}
?>
javascript..
<script language=”javascript” type=”text/javascript”>
function autoSubmit() {
document.edit.submit();
}
</script>
tag body..
<body onload=”autoSubmit();”>
*jika masih kacau di post ini atau error di script..
silakan pm saya melalui facebook yang tertera di nama saya (dj_afran)..
*bangg..
klo comment’a ga muncul..
tolong di publish ya bang..
biar pada baca..
saya ga tau klo bakalan di filter..
hikzz..
ini bisa ga pake cron jobs?
to chevryu: oh bisa sekali… konsepnya sama seperti artikel tentang auto published artikel dengan cron jobs.
pertamax nih mas, tapi terima kasih karena banyak yang saya dapat dari sini
mas kalau kita ingin menjalankan file html dilaptop secara otomatis dengan waktu yang telah ditentukan,scriptnya seperti apa mas?saya ingin belajar pusing udanyobanya mohon bantuan suhu.
kabari ya suhu di suhendra.ramdhan@yahoo.co.id
Assalamu’alaikum Wr. Wb.
Tatkala kita hendak mendaftar dan memiliki sebuah account di situs pertemanan/jejaring sosial kita diharuskan mengisi data diri. Biasanya pengisiannya dilakukan bertahap. misal dalam kasus Facebook kita awalnya harus mengisikan nama depan/belakang,email pasword baru, jenis kelamin dan tgl lahir. kemudian pada tahap/halaman berikutnya kita diharuskan mengisi data lengkap kita. Lalu bagaimana cara pengolahan input data semacam itu apabila seluruh data dimasukkan dalam satu tabel database, tetapi proses inputnya dilakukan dengan dua tahap?? Terima Kasih
@gusti juliansyah: mmm… mungkin artikel saya yang ada di http://blog.rosihanari.net/teknik-submit-data-melalui-multi-form bisa menjawab pertanyaan Anda mas.
Mas….klo cara penggunaan parse url tu kayak gmna y…? Soalnya q buat web penjualan, awalx udh jlan, tp pas q pke parse url langsung errror….!
Gmna y cra pakai parse url..?
Tolong y mas…………….!
Thank’s B4
@ozhy: wah contohnya penerapan parse url itu gimana ya? istilahnya saja saya gak ngerti, gimana mau menjelaskannya?
pa makasih tutorialnya
Nice tutorial , numpang tanya juga klo buat auto message gimana ya pak? misalnya untuk kasus inventory jika barang yang diambil tidak boleh melebihi jumlah yang tersedia supaya ngga minus stok maka program otomatis mendeteksi jumlah yang kita input -cek ke database-tampil auto message jika yang diambil melebihi,terima kasih..
@rumput_hijau: pakai IF saja mas, IF (jmlBarang>stok) THEN Muncul Pesan Kesalahan ELSE proses sukses
Klo logiknya si dah tau pak, cuma buat proses checking & munculin message tu pakai apa ya? apa harus pakai trigger trus diload ke php/javascript? terima kasih
@rumput_hijau: lho.. gak usah pake trigger mas, jadi proses checking itu dilakukan sebelum proses simpan datanya. Anda bisa melakukan checking setelah memasukkan jumlah barangnya melalui form, lalu disubmit. Setelah proses submit itu, anda harus melakukan query SQL untuk membaca jumlah stok pada barang tsb. Cukup pakai script PHP saja untuk menjalankan querynya. Lalu jumlah stok dibandingkan dengan jumlah barang. Kalo jumlah stok < jumlah barang, maka munculkan pesan salah, juga pake PHP saja.
wah bagus2 mas artikelnya…
btw bisa minta tolong…gmna c caranya buat background tulisan di textfield pencarian??kayak yang di kotak pencarian mas???
terimakasih buat bantuannya..
@angel: itu pake style CSS mbak. Contohnya gini:
<input type="text" style="background-image:url('account.gif')">Makasih inponya…
Klo penghapusan 1 data field gmana,misal komentar saja yg dhapus bkan 1 record??N g pake date
Makasih inponya brgna bgt…
Mo tanya maz.
Klo penghapusan 1 data field gmana,misal isi komentar saja yg dhapus dlm 3hri, bkan per record dhapus semua dan tidak mengacu pada tanggal.???
Trima ksih sblumnya
makasih infonya brguna bgt….
da sdikit masalah nih, klo misal sya buat tabel persis di atas cuma tdk pake “tanggal”.yang mo dihapus bkan per record tapi kolom komentarnya saja gmana??dan tidak mengacu pada tanggal (setelah lebih 3 hari semua komentar kosong).
makasih sblumnya
@inukange: kalo hapus pada kolomnya saja gak bisa mas, kalo hapus itu ya satu record. Kalo cuman pada kolom tertentu, ya prosesnya update saja dengan data kosong atau NULL.
mas klw buat input image dan tampilx bagaimana tapi caranya harus pakek klik aja mas
pak kalo auto deletion, tipe datanya timestamp gimana ya queri mysql-nya
sebelumnya terimakasih banyak, blognya banyak membantu saya
@iyus: contoh data timestamp gimana ya?
ini pak misal sy punya tabel ky gini
CREATE TABLE `shouts` (
`id` int(11) NOT NULL auto_increment,
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`shoutby` varchar(50) default NULL,
`shout` varchar(50) default NULL,
PRIMARY KEY `id` (`id`)
)
ini contoh aplikasi shutbox pak,
sya maunya itu menghapus otomatis 3 hari terhitung dari waktu yg ada di
field ‘timestamp’ yg tipe datanya TIMESTAMP(defaultnya kya gini pak, contoh –>2010-03-03 12:02:59)
gimana yah cara hapus otomatisnya, klo misalny fieldnya sy gnti ‘tanggal’ dan pake tipe data TIME kan, contoh –>2010-03-03
itu bisa pake yg cara bapak pake query “DELETE FROM shouts WHERE DATEDIFF(CURDATE(), tgl_shut) > ’3′”
nah kalo pake tipe data TIMESTAMP seperti contoh tabel sya query hapus otomatisnya gimana?
@iyus: bisa saja mas, tapi kita harus ambil tanggalnya dari timestamp tsb, lalu dicari selisih tanggal sekarang dengan tanggal dari timestamp tsb.
DELETE FROM shouts WHERE DATEDIFF(CURDATE(), DATE(tgl_shut)) > ’3′; dengan asumsi field ‘tgl_shut’ bertipe timestamp.
Salam Mas Bagaimana kalau script PHP nya
untuk membuat query memback up database
misal dari sebuah form ketika kita klik tombol back up maka perintah query back up berjalan dengan sempurnah…
dan database sudah ter back up tanpa menggunakan phpmyadmin atau comandpromt
MYSQLDUMP database_name > .sql;
atau
BACKUP DATABASE [database_name] TO DISK = ‘\’ WITH INIT
mohon bantuannya mas…. ditunggu ilmunya, TRIMAKASIH
@rizki muliono: sabar ya mas… mungkin suatu saat saya bisa nulis artikelnya.
tanya mas saya punya masalah ama delete mendelet ni
maklum bukan programer.
ceritanya
saya mau delet hasil ini : select * FROM `wp_wpseotags_referer` WHERE `q` LIKE ‘%porn%’ limit 30, 30;
resultnya banyak bgt, gimana cera deletnya yang tercepet thanks.
saya dah coba: delete * FROM `wp_wpseotags_referer` WHERE `q` LIKE ‘%porn%’
atau regexp ga isa
norify saya via email ya. kalo dah dijawab maksih buanyak dah.
@baedo: perintah untuk delete record spt ini mas -> DELETE FROM wp_wpseotags_referer WHERE q LIKE ‘%porn%’. Jadi gak pake tanda *. Anda pake plugin auto generated content ya?
iya mas, make autocontent, trus moderasinya di lewat jadi banyak keyword gitu yg masuk. aku dah coba kok kluarnya: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘%porn%’ at line 1
apa yang salah ya
halo…pak salam kenal nama saya yody…mau tanya gimana sihh cara membuat Menu dngn CSS n JavaScript ???….n message box seperti di facebook….thx
o..ya saya juga mau tanya gimana sihh cara menghapus file yg telah diupload tapi posisi halaman nya itu pada saat mau di edit datanya…
@yody: silakan baca penjelasan cara menghapus filenya di http://blog.rosihanari.net/ide-pembuatan-script-php-upload-download-file-via-folder mas..
@baedo: tolong Anda jangan copas dari perintah SQL yang saya kirim kmrn, tapi ditulis manual karena bisa jadi tanda petiknya berubah.
maaf mas,…
yg saya maksud posisi pada saat mau mengedit file yang di upload jadi gambar yg diupload itu di ganti jadi gambar yg lama terhapus….saya coba pake coding yang unlink ehh ternyata ngak bisa bingung dehh….
nee contoh coding proses
saya kasihh tanda ” // ” karena klo dipakai jadi ngak jalan…..
tolong mas bantuan nya..n solusi nya thx…
sukses selalu buat pak ari
mau nanya pak.
kalo untuk membuat sms gateway dengan pengirirman sms secara terjadwal sesuai tanggal gmn caranya?thx
@ashar: konsepnya sama seperti di artikel http://blog.rosihanari.net/membuat-sms-gateway-ucapan-ulang-tahun-otomatis-dengan-php-mysql mas..
Salam kenal pak ari
Artikel bapak sangat membantu saya sebagai pemula, pak saya mau nanya juga, kalau menghapus secara otomatis berdasarkan waktu atau jam nya apakah scriptnya sama seperti artikel diatas? termksh ats jwbnnya..
@mutta: iya sama persis caranya…
Mas, auto deletionnya berdasarkan waktu penympanan data ke mysql gimana?? misal sy mau hapus data 2 jam setelah penyimpanan?? makasih
@ibel: ya konsepnya sama mas, hanya nantinya anda harus menghitung selisih waktu sekarang dengan waktu penyimpanannya menggunakan query SQL saja
DELETE FROM tabel WHERE hour(timediff(waktusimpan, now())) >= 2 ;
dengan catatan, tipe data waktusimpan nya adalah DATETIME.
Mas gimana caranya kalo qt mau mengosongkan isi text secara otomatis di java script kalo ga di php?????blz dunk
Salam kenal mas Ari..
artikel ini sangat membantu sy..
tp yg mau sy tanyakan bisa ga,,,field2 dalam database itu terhapus setelah di submit ga nunggu perhari,,
(soalnya tabel itu hanya menjadi penampung sementara saja)..
jadi sy punya satu form request barang,,disitu ada inputan no.surat,dll dan bisa milih lebih lebih dr 1 barang yg ada d tbl_perangkat. ketika dpilih,barang2nya tsb dtampung smntara d tbl_tampung dan ketika dsubmit smuanya tersimpan d tbl_permintaan. bgmna yah Mas,,,ketika submit record2 yg ada di tbl_tampung lgsg terhapus??
tlg bantuannya,,,makasih:)
@eva: bisa saja mbak, nanti script untuk hapus datanya diletakkan di script setelah submitnya.