Rss Feed
Tweeter button
Facebook button
Technorati button
Reddit button
Myspace button
Linkedin button
Delicious button
Digg button
preload preload preload preload

PHP- Ajax Star Rating Bar

Bu dersimizde  Ajax Star Rating Bar ‘ile videolar, resimler, user profilleri vb. içeriklere  Star Rating ile oylama yapmayı ögreniyoruz. Örnegimizde ilk olarak star veri tabanındaki star tablosundaki sutunlara id, toplam puan, toplam kullanılan oy sayısı ve birden fazla oylamayı önlemek için user_ips tablo alanları oluyor. Bunlar ek proje dosyalarında yer almakta.İlk olarak veri tabanına bakıyoruz veri tabanında böyle bir id yok ise oluşturuyor ve üzerinde güncelleme yapıyoruz, eğer varsa direk olarka üzerinde oylama (update) yapmasını sağlıyoruz. Örnegimizde id 1 ise dedik bunu daha geniş çalışmalarda: Örneğin bir fotograf sitesinde her bir fotografın id sine görede yapabiliriz. Bu global olarak kullancağımız ve seçtiğimizde sadece o resmin Star Rating’i üzerine oylama yapmamızı sağlaması için id yi bir session a atıyarakta işlemler yapabilriz. Aşagıda projeye ait kodlar yer almaktadır (db.php ) . Diğer proje dosyaları ek’te yer almaktadır .Proje Dosyaları

< ?phpheader("Cache-Control: no-cache");header("Pragma: nocache");require('_config-rating.php'); // get the db connection info//getting the values$vote_sent = preg_replace("/[^0-9]/","",$_REQUEST['j']);$id_sent = preg_replace("/[^0-9a-zA-Z]/","",$_REQUEST['q']);$ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']);$units = preg_replace("/[^0-9]/","",$_REQUEST['c']);$ip = $_SERVER['REMOTE_ADDR'];$referer  = $_SERVER['HTTP_REFERER'];if ($vote_sent > $units) die("Sorry, vote appears to be invalid."); // kill the script because normal users will never see this.//connecting to the database to get some information$query = mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='1' ")or die(" Error: ".mysql_error());$numbers = mysql_fetch_assoc($query);$checkIP = unserialize($numbers['used_ips']);$count = $numbers['total_votes']; //how many votes total$current_rating = $numbers['total_value']; //total number of rating added together and stored$sum = $vote_sent+$current_rating; // add together the current vote value and the total vote value$tense = ($count==1) ? "vote" : "votes"; //plural form votes/vote// checking to see if the first vote has been tallied// or increment the current number of votes($sum==0 ? $added=0 : $added=$count+1);// if it is an array i.e. already has entries the push in another value((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));$insertip=serialize($checkIP);//IP check when voting$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='1' "));if(!$voted) {     //if the user hasn't yet voted, then vote normally...if (($vote_sent >= 1 && $vote_sent < = $units) && ($ip == $ip_num)) { // keep votes within range$update = "UPDATE $rating_dbname.$rating_tableName SET total_votes='".$added."', total_value='".$sum."', used_ips='".$insertip."' WHERE id=1 ";$result = mysql_query($update);}header("Location: $referer"); // go back to the page we came fromexit;} //end for the "if(!$voted)"?>
Yazar hakkında
Müslüm Gümüşlüoğlu
Hem yazılım, hem kendini geliştiriyor. teknoloji meraklısı... kişisel weblogu
  • 3 responses to "PHP- Ajax Star Rating Bar"

  • Netereyon
    10:12 on Temmuz 13th, 2009

    Güzel paylaşım

  • Ali
    14:09 on Temmuz 13th, 2009

    zamanında ne kadar çok aramıştım buna benzer bi uygulamayı :) teşekkürler

  • fitness
    9:33 on Eylül 18th, 2009

    paylasım icin saol

  • Leave a Reply

    * Required
    ** Your Email is never shared