Membuat Script PHP untuk Randomize Secara Periodik
March 7th, 2009 | by rosihanari |
Cetak Artikel Ini
Artikel ini merupakan request dari salah satu member saya, mas Zainal. Thanks mas atas requestnya
Mas Zainal ini bertanya bagaimana cara membuat script untuk merandom data dari database namun secara periodik, misalkan dalam jangka waktu 1 hari atau n hari.
Untuk pembahasan ini, kita buat contoh studi kasus saja misalkan untuk keperluan menampilkan random quote (pesan acak) seperti yang pernah saya jelaskan dalam artikel sebelumnya. Namun pada artikel tersebut, quote akan dirandom setiap saat begitu script tersebut diakses bukan pada periodik tertentu. Nah… sekarang kita coba untuk membuat script random quote yang mengacak secara periodik.
Ide untuk membuatnya adalah sederhana yaitu selain kita buat tabel berisi data yang akan dirandom, kita juga membuat semacam penyimpanan untuk menyimpan data waktu terakhir kapan proses pengacakan dilakukan. Setiap kali proses pengacakan dilakukan, maka data waktu terakhir ini akan terupdate secara otomatis. Data waktu ini akan digunakan sebagai parameter untuk pengaturan periodik proses randomnya. Data waktu ini dapat Anda simpan menggunakan database atau melalui file teks. Dalam contoh ini, kita akan gunakan database untuk menyimpan waktu random terakhirnya.
OK… kita mulai membuatnya. Pertama kita siapkan tabel-tabel yang dibutuhkan terlebih dahulu. Untuk tabel yang digunakan menyimpan quotesnya, kita gunakan tabel yang sama seperti pembahasan sebelumnya saja yah..
Selanjutnya kita perlu membuat tabel untuk menyimpan waktu terakhir proses update. Cukup gini saja tabelnya
CREATE TABLE lastRandom ( id INT, tanggal DATE )
Field ‘id’ digunakan untuk menyimpan nomor id dari quote yang terpilih secara random sebelumnya. Sebagai inisialisasi, sebaiknya kita isikan salah satu no. id di antara quote yang ada dan untuk field tanggalnya, kita sisipkan saja tanggal hari ini (current date).
INSERT INTO lastRandom VALUES(1, CURDATE());
Sekarang… kita mulai membuat scriptnya. Eh… tapi enaknya kita sedikit modifikasi sedikit saja ya script pada random quote yang ada di artikel sebelumnya.
Trus.. idenya bagaimana ya supaya proses mengacak quotenya dalam periodik tertentu, misalnya setiap periode n hari. Idenya cukup sederhana, yaitu kita hanya mencari selisih antara current date (tanggal saat ini) dengan tanggal terakhir proses random yang tersimpan dalam database. Jika selisih harinya lebih besar atau sama dengan n hari, maka proses acak quote dilakukan. Nomor id yang ada di tabel lastRandom kita update dengan id dari quote hasil proses random. Sedangkan untuk field tanggal, kita update dengan tanggal ketika proses randomnya.
Bagaimana cara mencari selisih hari? Kita bisa gunakan query SQL dengan memanfaatkan function DATEDIFF().
random.php
<?php mysql_connect("host", "user", "pass"); mysql_select_db("dbname"); $interval = 1; // setting periodik randomize dalam waktu 1 hari // membaca record dalam tabel 'lastRandom' $query = "SELECT * FROM lastRandom"; $hasil = mysql_query($query); $data = mysql_fetch_array($hasil); $tglLastRandom = $data['tanggal']; // mencari selisih current date dengan tanggal last random $query = "SELECT DATEDIFF(CURDATE(), '$tglLastRandom') AS selisih"; $hasil = mysql_query($query); $data = mysql_fetch_array($hasil); // jika selisih hari >= interval, maka lakukan random dan update tabel 'lastRandom' if ($data['selisih'] >= $interval) { // proses random untuk memilih quote $query = "SELECT * FROM tabelQuotes ORDER BY RAND()"; $hasil = mysql_query($query); $data = mysql_fetch_array($hasil); $idQuote = $data['id']; // update tabel 'lastRandom' $query = "UPDATE lastRandom SET id = $idQuote, tanggal = CURDATE()"; mysql_query($query); } // tampilkan quote hasil random berdasarkan id quote terakhir hasil random $query = "SELECT * FROM lastRandom"; $hasil = mysql_query($query); $data = mysql_fetch_array($hasil); $idQuote = $data['id']; $query = "SELECT * FROM tabelQuotes WHERE id = $idQuote"; $hasil = mysql_query($query); $data = mysql_fetch_array($hasil); echo "Pesan saat ini : ".$data['quote']; ?>
That’s all… mudah bukan membuatnya. Bagaimana bila data last random nya disimpan dalam file teks? dan bukannya menggunakan databae? Silakan Anda bereksperimen sendiri ya… Anda dapat menerapkan penjelasan di atas pada proses random image.
Beberapa artikel terkait
- Membuat Random Quotes dengan PHP
- Membuat Script Random Image dengan PHP
- Script PHP Updating Data Secara Simultan (Studi Kasus Update Nilai Kuliah Mahasiswa)
- Mengetahui Kinerja Script PHP Berdasarkan Waktu Eksekusi
- Script PHP untuk Mencari Selisih Waktu dan Tanggal
- Ide Membuat Script Grafik PHP Untuk Menampilkan Indeks Prestasi Mahasiswa (Studi Kasus)
- Script PHP untuk Membuat Dokumen RTF
- Script PHP untuk Arsip Artikel Berdasarkan Bulan dan Tahun
- Script PHP untuk Menampilkan Siswa Belum Bayar SPP (A Study Case)
- Script PHP Untuk Update Password Administrator
Share this article on:
Kata kunci: PHP - random - script -
Mau kaos (T-shirt) Wordpress keren? (
Rosihan Ari adalah seorang programmer, penulis buku, trainer, peneliti dan berusaha menjadi seorang blogger sejati dengan memberikan yang terbaik buat negeri ini. Berfokus pada computer programming serta computer aided learning for mathematics, ia ingin berbagi ilmu yang dimilikinya. 


selamat siang mas..
saya mau tanya dong.. gmn caranya bikin aplikasi kuesioner evaluasi dosen secara online.
karena kebetulan saya sedang mengerjakan skripsi saya…
thanx sblmnya..
saya sangat mengharapkan bimbingan dari mas…
mas, saya mau tanya artikel mas ttng script php penjumlahan,mas gmana caranya membuat penjumlahan tanpa kita menekan submit contoh:
form1 kita isi angka 1
form2 kita isi angka 2
form3 langsung otomatis menunjukan totalnya 3
tolong kalau bisa kirm ke email saya termakasih mas
to januar: ya.. gunakan javascript atau AJAX mas…
mas,tolong dong solusinya tentang scripnya?
to januar: silakan cari tutorial Javascript saya di sini mas.
syukron mas,saya coba dulu mas,mudah2an ilmu mas bermanfaat buat siswa saya disekolah
pak salam kenal
Maksih banyak mas atas Share ilmu ny…
Semoga bermanfaat..
.-= firman´s last blog ..Relung -relung yang Hampa =-.
@firman: sama-sama mas firman. Ditunggu kunjungan berikutnya ya…