Mau kaos (T-shirt) Wordpress keren? (Selengkapnya)
Dapatkan Script SMS Gateway PHP + MySQL

Seperti: software pengirim SMS massal, SMS survei, SMS polling, SMS quick count, SMS dakwah, Web2SMS dan masih banyak lagi... semuanya berbasis PHP & MySQL
[Info Lengkap...]



Membuat Script PHP untuk Randomize Secara Periodik


March 7th, 2009 | by rosihanari | Cetak Artikel Ini 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


Share this article on:

Kata kunci: PHP - random - script -


Ada 10 komentar dalam artikel ini.

  1. putrirana says:

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

  2. januar says:

    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

  3. januar says:

    tolong kalau bisa kirm ke email saya termakasih mas

  4. rosihanari says:

    to januar: ya.. gunakan javascript atau AJAX mas…

  5. januar says:

    mas,tolong dong solusinya tentang scripnya?

  6. rosihanari says:

    to januar: silakan cari tutorial Javascript saya di sini mas.

  7. januar says:

    syukron mas,saya coba dulu mas,mudah2an ilmu mas bermanfaat buat siswa saya disekolah

  8. fauzi says:

    pak salam kenal

  9. firman says:

    Maksih banyak mas atas Share ilmu ny…
    Semoga bermanfaat..
    .-= firman´s last blog ..Relung -relung yang Hampa =-.

  10. rosihanari says:

    @firman: sama-sama mas firman. Ditunggu kunjungan berikutnya ya…



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
Untuk membuktikan bahwa komentar Anda bukan spam, tulis kata yang muncul dalam gambar di bawah ini. Bila Anda tidak bisa membaca kata dalam gambar, klik pada gambar tersebut untuk mendengarkan suara dari kata tersebut
Click to hear an audio file of the anti-spam word