Halo sobat ketemu lagi di blog saya. Kali ini saya akan membehas mengenai cara membuat rating sederhana dengan menggunakan PHP, Ajax, dan My SQL. Silahkan disimak baik-baik ya . . . J
Pertama-tama kita siapkan yang kita butuhkan. Untuk rating biasanya menggunakan simbol bintang, maka sobat cari gambar bintang. Untuk gambar ini sobat cari 3 jenis, yang pertama untuk menampilkan jumlah rating, kemudian yang kedua untuk pemberian rating dan yang terakhir untuk pemberian rating ketika di-hover.
Yang kedua buat database dengan struktur tabel sebagai berikut :
CREATE DATABASE IF NOT EXISTS `aplikasi_rating`;USE `aplikasi_rating`;CREATE TABLE IF NOT EXISTS `rating` (`id` int(11) NOT NULL AUTO_INCREMENT,`nama` varchar(50) NOT NULL,`rating` int(11) NOT NULL,`voter` int(11) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
Setelah itu buat file baru di editor sobat, beri nama rating.php atau terserah sobat. Kemudian masukkan script berikut :
<html>
<head><script type="text/javascript">var xmlhttp;function buatRq(){if(window.ActiveXObject){xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}else{xmlhttp = new XMLHttpRequest();}}function tampilKan(){buatRq();xmlhttp.onreadystatechange = tanganiIni;xmlhttp.open("GET","rating.php",true);xmlhttp.send(null);}function beriRating(i,j){xmlhttp.onreadystatechange = tanganiIni;xmlhttp.open("GET","rating.php?rating="+i+"&id="+j,true);xmlhttp.send(null);alert("Terima Kasih");}function tanganiIni(){if(xmlhttp.readyState == 4){if(xmlhttp.status == 200){document.getElementById("hasil").innerHTML = xmlhttp.responseText;setTimeout('tampilKan()',1000);}}}function diatasRating(i,x){var l;for(l=1;l<=i;l++){document.getElementById(x+"_"+l).src = "ratingisi.png";}}function diatasRatin(i,x){var l;for(l=1;l<=i;l++){document.getElementById(x+"_"+l).src = "rating.png";}}</script><body onload="tampilKan();"><div id="hasil"></div></body></html>
Script diatas befungsi untuk membuat request data ke server. Sekarang kita buat file untuk menampung request datanya. Scriptnya sebagai berikut :
<style>.ratink{width : 335px;border : 1px solid black;border-radius : 10px;margin-bottom : 10px;padding : 10px;box-shadow : 0 0 4px 0;}.berirating{overflow : hidden;}.tampil_rating{overflow : hidden;</style><?phpmysql_connect("localhost","root","");mysql_select_db("aplikasi_rating");if(isset($_GET['rating']) && isset($_GET['id'])){$rating = $_GET['rating'];$id = $_GET['id'];mysql_query("update rating set rating = rating + ".$rating.",voter = voter + 1 where id = '".$id."'");}$q = mysql_query("select * from rating");while($d=mysql_fetch_array($q)){$id = $d['id'];$nama = $d['nama'];$rating = $d['rating'];$voter = $d['voter'];if($rating == 0 || $voter == 0){$rate = 0;}else{$rata = $rating/$voter;$rate = round($rata);}echo "<div class='ratink'>";echo "<div class='tampil_rating'>";echo "<b>".$nama."</b> mempunyai rating : ".$rate." ";if($rate == 1){echo "<img src='rating.jpg' width='25' />";}else if($rate == 2){for($i=1;$i<=2;$i++)echo "<img src='rating.jpg' width='25' />";}else if($rate == 3){for($i=1;$i<=3;$i++)echo "<img src='rating.jpg' width='25' />";}else if($rate == 4){for($i=1;$i<=4;$i++)echo "<img src='rating.jpg' width='25' />";}else if($rate == 5){for($i=1;$i<=5;$i++)echo "<img src='rating.jpg' width='25' />";}echo "</div>";echo "<div class='berirating'>";echo "Beri rating : ";for($i=1;$i<=5;$i++){?><img id="<?php echo $id."_".$i; ?>" src="rating.png" width="25" onmouseover="diatasRating('<?php echo $i; ?>','<?php echo $id; ?>');" onmouseout="diatasRatin('<?php echo $i; ?>','<?php echo $id; ?>');" onclick="beriRating('<?php echo $i; ?>','<?php echo $id; ?>');" /><?php}echo "</div></div>";}?>
Script diatas digunakan untuk handler data. Beri nama file diatas rating.php. Kemudian untuk gambarnya silahkan sobat tempatkan satu folder dengan dua script diatas. Untuk menjalankannya tinggal jalankan script rating.html. Hasilnya :
Hasil |
Oke, sekian artikel saya kali ini dan semoga bermanfaat bagi sobat semua. Tunggu artikel-artikel selanjutnya ya . . . J
om gak bisa download ya..bagus artikelnya
ReplyDeleteitu tinggal copas aja bro, nanti upload filenya menyusul . . .
ReplyDeletemas itu script 1di save jadi rating.php trus scrip ke 2 rating.php, bukannya ketiban file jadinya mas ?
ReplyDeleteitu maksudnya gmn ya hhe
maaf saya masih kurang paham
itu yang pertama ekstensinya .html
ReplyDeletekemudian yang kedua itu .php
gan kok ane gagal terus ya gak pernah berhasil sering erro di mysql_query nya tolong batuannya !!
ReplyDeleteada tulisan bagaimana errornya?
ReplyDeleteGan maaf saya masih newby,,buat database nya dimana ya gan?? Atau di file berkas ya gan buat database nya
ReplyDeleteTidak ada berkasnya. Untuk database bisa dilihat pada bagian awal artikel, sudah ada SQL-nya, tinggal copy saja.
ReplyDeleteCasinos Near Harrah's Cherokee Casino - Mapyro
ReplyDeleteHarrah's Cherokee Casino is located in the mountains 전라북도 출장안마 off 대구광역 출장샵 Interstate 45 just 20 minutes from Harrah's 서울특별 출장마사지 Cherokee Casino and 8 보령 출장마사지 minutes from Harrah's Cherokee 전라남도 출장마사지 Casino.