Kamis, 12 Juli 2012

Membuat Schedule di website (PHP & MySQL) bagian 1

Pernah punya kendala didalam pembuatan script shedule yang menyesuaikan dengan waktu saat ini di Website? Hari ini kita akan mempelajari bagaimana cara membuat schedule didalam website; adapun pembuatannya melalui 3 tahap, yakni acara yang telah lewat, acara yang sedang dijalani dan acara yang belum terjadi. Dalam hal ini PHP akan mengetahui waktu yang telah lewat, masa kini atau akan datang melalui waktu yang ada dikomputer client. Let's Started.

Pembuatan Database
Pertama sekali adalah membuka PHPMYADMIN untuk pembuatan database, didalam contoh ini saya akan membuat database time dan table sc (untuk memudahkan saya mengingat).

didalam table sc:

nama_acara     varchar(150)
jam            time
jamakhir       time


Selanjutnya, pada table sc akan saya masukan beberapa jadwal. Untuk memudahkan kita melihat hasilnya.



Setelah proses memasukkan beberapa data selesai, maka tahap berikutnya adalah mempersiapkan koneksi database pada file PHP.

<?php
$server = "localhost";
$username = "root";
$password = "";
$dblink = "time";

mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($dblink) or die("Database tidak bisa dibuka");

diasumsikan bahwa server saya memiliki username "root" dan password kosong (bawaan dasar dari XAMPP). Untuk dblink adalah nama database.

Setelah file koneksi saya masukkan, saatnya membuat file time, yang akan membantu kita mengetahui waktu saat ini.

date_default_timezone_set('Asia/Jakarta'); 


$seminggu = array("minggu","senin","selasa","rabu","kamis","jumat","sabtu");
$hari = date("w");
$today = $seminggu[$hari];
$newtime = date("H:i:s");
echo "Hari ini: ". $today." - ";
echo "Jam: ".$newtime;
echo "<br/>";

Sebelum menyimpan data hari, terlebih dahulu hari dikonversi menggunakan bahasa Indonesia. Hal ini akan sangat berguna untuk mencocokan hari ini dengan jadwal untuk hari ini (dalam tutorial bagian ke 2), setelah dikonversi nilai hari disimpan dalam variable $today dan nilai jam disimpan dalam variable $newtime.

Setelah nilai hari dan nilai jam disimpan, saatnya kita memproses data yang diambil dari database.


$acaratelahlewat = "select nama_acara, jam, jamakhir 
from sc where '$newtime' > jam and jamakhir < '$newtime' ";
$querytelahlewat = mysql_query($acaratelahlewat);
while ($pastevent = mysql_fetch_array($querytelahlewat))
{
echo "Acara Sebelumnya<br/>";
echo $pastevent['nama_acara'] ."<br/>";
echo $pastevent['jam'] ."<br/>";
echo $pastevent['jamakhir'] ."<br/>";
echo "<br>";
}

Dalam proses data diatas, $newtime dipanggil untuk menyesuaikan jam sekarang dengan jam acara di database, jika ditemukan jam yang telah lewat dari jam sekarang. Maka PHP akan menampilkan ini sebagai event yang telah lewat.

Untuk mengambil data acara yang sedang berlangsung (sesuai dengan jam saat ini)


$jamsekarang = "select nama_acara, jam, jamakhir 
from sc where '$newtime' > jam and '$newtime' < jamakhir";
$query = mysql_query($jamsekarang);
while ($hasil = mysql_fetch_array($query))
{
echo "Acara Sekarang<br/>";
echo $hasil['nama_acara'] ."<br/>";
echo $hasil['jam'] ."<br/>";
echo $hasil['jamakhir'] ."<br/>";
echo "<br>";
}


Proses diatas berguna untuk mengambil data dan membandingkan waktu saat ini dalam variable $newtime, jika waktu komputer sesuai dengan jam mulai dan akhir (antara keduanya) maka, script ini akan menampilkan informasinya.

Pada proses terakhir, yang akan di cek adalah jadwal yang akan datang (yang belum dijalankan berdasarkan waktu)



$akandatang = "select nama_acara, jam, jamakhir 
from sc where jam > '$newtime'  and '$newtime' < jamakhir";
$prosesnext = mysql_query($akandatang);
while ($hasil2 = mysql_fetch_array($prosesnext))
{
echo "Akan Datang<br/>";
echo $hasil2['nama_acara'] ."<br/>";
echo $hasil2['jam'] ."<br/>";
echo $hasil2['jamakhir'] ."<br/>";
echo "<br>";
}

?>

Pada proses terakhir PHP akan membandingkan antara waktu database dengan variable $newtime, jika waktu database lebih dari $newtime maka secara sistem data tersebut akan ditampilkan.


Berikut tampilan ketika dijalankan.





  










1 komentar:

  1. supaya semua bisa saling berhubungan nama filenya dikasih apa aja?

    BalasHapus