Alnect computer Blog Contest

18 Desember 2008

MySQL - PHP MySQL Rating Script



Pertama bikin dolo contoh halaman fungsi buatan na, misal: ratestar.php
didalam na ketik Script na:



//rateStar, php script builder by dremi.info

<?

function rateStar($int, $maxRate)

{

if(empty($maxRate))

{

$maxi=10;

}

else

{

$maxi=$maxRate;

}



//begin rate star na

for ($i=0; $i < $int; $i++) {

$img .= "<img alt=\"*\" src=\"images/icons/rate-icon.gif\" />";

}

for ($i=$int; $i < $maxi; $i++) {

$img .= "<img alt=\"\" src=\"images/icons/rate-blank-icon.gif\" />";

}



echo "Rate Star: $img";

}

?>



var $int merupakan bilangan inputan untuk dapat dijadikan sebagai data rating na, dimulai dari angka 0-9 (integer)

var $maxRate gue jadiin sebagai indikator dowank, maksud na gini, kalo dikosongkan maka var $maxRate bernilai 10, untuk maksimal gambar / data bintang rate na.

pada baris fungsi diatas terletak di baris ini:



if(empty($maxRate))

{

$maxi=10;

}

else

{

$maxi=$maxRate;

}



nah baru setelah kedua var $int dan $maxRate valid, maka akan dimulai dengan proses mencetak gambar bintang, yang sebelumna dah disiapkan di folder images gue, atow tersrah lu mao di load dari mana aja, asal bisa dipanggil oleh script na:



/begin rate star na

for ($i=0; $i < $int; $i++) {

$img .= "<img alt=\"*\" src=\"images/icons/rate-icon.gif\" />";

}

for ($i=$int; $i < $maxi; $i++) {

$img .= "<img alt=\"\" src=\"images/icons/rate-blank-icon.gif\" />";

}



ungsi for merupakan fungsi bawaan dalam PHP, gunakan untuk me-repeat / mengulang perintah.

Gue mulai pengulangan na dari var $i=0, sampai dengan jumlah pada var $int. sedangakn $i < $int merupakan penjabaran dari jarak perhitungan 0 s/d $int



for ($i=0; $i < $int; $i++)



baru deh kalo dah fix semua, gue cetak hasil keluaran data gambar bintang2 na menggunakan perintah echo:



echo "Rate Star: $img";



Hmmm...trus lu nanti tinggal panggil di halaman preview rate star na dengan mengetik code fungsi na diatas tadi:



<? rateStar("$barisDataRating", ""); ?>



Di halaman preview star ini, skaligus menjadi halaman polling rate na, jadi kita butuh form rate star juga:, misalkan nama halaman na: reviewstar.php

jadi code na kaya gini



//asumsikan kita punya table data sebagai inputan data rate na var $int:

//halaman ini diakses via URL, dengan var cID sebagai pointer data :



//misal URL na: http://localhost/reviewstar.php?cID=2



$c=mysql_connect("localhost","","");

$db=mysql_select_db("test_dbase", $c);





$row=mysql_fetch_array(mysql_query("SELECT * FROM tblRate WHERE id=".$_GET['cID'].""));



<? echo $_GET['cMSG2']; ?> //menampilkan pesan cMSG2 nantinya

<? include "ratestar.php"; ?> //panggil halaman fungsi rating

<? rateStar("$row[rate]", ""); ?> // baru fungsi na di load disini



<div id="targetRate">

<form id="form1" name="formRatingSyafira" method="post" action="rateaction.php">

<input type="hidden" name="cID" value="<? echo $_GET['cID']; ?>"/>

<input name="submit" type="submit" class="input" value="Rate this Data" />

</form>

</div>



woke untuk file rateaction.php, gue pake fungsi setcookie(), yang merupakan fungsi bawaan dari PHP sono, gunanya bwat men-set seberapa lama jarak kita bisa melakukan rate pertama dengan seterusna, jadi g asal klik rate terus gitu....na kaya gini code na:



<?

## COOKIE cID Rate Data na



$c=mysql_connect("localhost","","");

$db=mysql_select_db("test_dbase", $c);





$row=mysql_fetch_array(mysql_query("SELECT * FROM tblRate WHERE id=".$_GET['cID'].""));



## jika rate data kosong

if(empty($_POST['cID'])) {

header("location:../reviewstar.php?cID=".$_POST['cID']."&cMSG2=???#targetRate");

} else {



## jika memilih salah satu radio button rate

$value = $_POST['cID'];





if(isset($_COOKIE['RateCookie'])) {



header("location:../reviewstar.php?cID=$value&cMSG2=Anda Telah Melakukan Rate Tutorial sebelumnya.#targetRate");



} else {



setcookie("RateCookie", $value, time()+3600);



//update data rating

mysql_query("UPDATE tblRate SET rate=rate+1 WHERE id = '".$_POST['cID']."'");

header("location:../reviewstar.php?cID=$value#targetRate");



}



}



## END OF RATE STAR, credit dremi.info

?>



sset($_COOKIE['RateCookie']) merupkan pengecekan kalo misalkan cookie rate data telah diset / belum. kalo belum melakukan rate star, maka cookie "RateCookie" akan di set selama 3600 detik / 1 jam:



setcookie("RateCookie", $value, time()+3600);



sedangkan perintah fungsi header("location:") merupakan fungsi untuk melempar ke halaman yang dimaksud, jika aksi selesai dijalankan.

Related Posts sesuai kategori



1 komentar:

belajarhebat mengatakan...

gan kok gagal kodenya ada yang salah ya