Presented by Redjkibersama.blogspot.com - Silahkan download sepuasnya, dijamin gratis..tis..tis... !

Sunday, March 27, 2011

Membuat Auto Deletion (Hapus Otomatis) Data Dengan Script PHP

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:
1.CREATE TABLE guestbook (
2.    id int(11) auto_increment,
3.    nama varchar(20),
4.    email varchar(20),
5.    komentar text,
6.    tanggal date,
7.    PRIMARY KEY(id)
8.)
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.
01.INSERT INTO guestbook VALUES
02.(1, 'Rosihan Ari', 'rosihanari@gmail.com',
03.    'This site is great', '2008-06-01'),
04.(2, 'Dwi Amalia', 'amalia@gmail.com',
05.    'Hello...', '2008-06-05'),
06.(3, 'Faza Fauzan', 'fauzan@fauzan.com',
07.    'Great site dad...', '2008-06-08'),
08.(4, 'Nada Hasanah', 'nada@hasanah.com',
09.    'I love u dad', '2008-06-09'),
10.(5, 'Muh. Ahsani Taqwim', 'ahsani@taqwim.com',
11.    'Good job dad', '2008-06-10');
Setelah data dan tabel siap, selanjutnya kita bisa mulai membuat script auto deletionnya.
01.
02. 
03.// koneksi ke mysql
04. 
05.mysql_connect("namahost","dbuser","dbpass");
06.mysql_select_db("dbname");
07. 
08.// setting timer
09. 
10.$lama = 3; // lama data adalah 3 hari
11. 
12.// proses penghapusan data
13. 
14.$query = "DELETE FROM guestbook
15.          WHERE DATEDIFF(CURDATE(), tanggal) > $lama";
16.$hasil = mysql_query($query);
17. 
18.?>
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......

No comments:

Daftar Isi