Membuat Auto Deletion (Hapus Otomatis) Data Dengan Script PHP

Sharing is caring!

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)
)

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');

Setelah data dan tabel siap, selanjutnya kita bisa mulai membuat script auto deletionnya.

<?php

// 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);

?>

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.

Tinggalkan Komentar