Quantcast
Channel: Young Minds, Blog » jQuery
Viewing all articles
Browse latest Browse all 4

PHP jQuery Star Rating

$
0
0

I was looking to create PHP jQuery star rating and luckily came across this script. I have created a very easy steps below so that even a layman can make this work with basic PHP and jQuery knowledge.

1. Create table using following SQL Query

CREATE TABLE IF NOT EXISTS `ratings` 
(  `rating_id` INT(11) NOT NULL AUTO_INCREMENT,
   `rating_article_id` INT(11) NOT NULL,   
`rating_num` INT(11) NOT NULL,   
`rating_ip` VARCHAR(25) NOT NULL,   
`rating_date` DATE NOT NULL,   
PRIMARY KEY (`rating_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

2. Create following PHP functions

function selectRating($article_id){         
$ip = $_SERVER['REMOTE_ADDR'];         
$dublicate_val = $this->checkDublicateRating($article_id,$ip);         
$total_rating_star = 5;         
$rating_star =NULL;         
$sql = "SELECT SUM(rating_num)AS total_rate, 
COUNT(*) AS total_row          
FROM ratings WHERE         
rating_article_id = '$article_id'";         
$resRating = mysql_query($sql);         
$recRating = mysql_fetch_array($resRating);         
if($recRating['total_row']>0)         {        
 $average = floor($recRating['total_rate']/$recRating['total_row']);         
$rate_percentage =($recRating['total_rate']
/($recRating['total_row']*$total_rating_star))*100;         
} 
else         
{
$average =0;         
$rate_percentage=0;         
}         
//echo $average;         
for($i=1;$i<=$average;$i++)         {         
if($dublicate_val==0)             {             
$ratval = $i;             
$rating_star.="<a href="javascript:;">
<img src='images/star_on.gif' border="0"  
id="$ratval" class="rating" /></a>";            
}             
else             
{            
 $rating_star.="<img src='images/star_on.gif' border="0" />";             
}         
}         
for($i=$average+1;$i<=$total_rating_star;$i++)         {             
if($dublicate_val==0)             {             
$ratval = $i;            
$rating_star.="<a href="javascript:;">
<img src='images/star_off.gif' border="0"
id="$ratval" class="rating" /></a>";             
}             
else             
{             
$rating_star.="<img src='images/star_off.gif' border="0" />";             
}         
}         
$rating_star="
<div style="width:160px; border:1px solid #fff; 
margin:5px 10px 0 0;padding:5px; float:left">".$rating_star."</div>";         
$rating_star .="<div style="width:160px; 
border:1px solid #fff; margin:5px 10px 0 0;padding:8px; 
float:left">Percentage:- 
".number_format($rate_percentage, 2, '.', '')."%</div>";
$rating_star .= "<div style="width:152px; border:1px solid #fff;
 margin:5px 10px 0 0;padding:8px; float:left">
Total Rate:- ".$recRating['total_row']."</div>
<div style="clear:both;"></div>";        
 return $rating_star;             
}
 function checkDublicateRating($id,$ip) {          
$sql="SELECT  COUNT(*) AS total_row FROM ratings 
WHERE rating_article_id = '".$id."' 
AND 
rating_ip='".$ip."'";     
$resCheck = mysql_query ($sql);    
 $recCheck = mysql_fetch_array($resCheck);     
return $recCheck['total_row'];     
} 
function insertRating($rate_id,$article_id)     
{        
$ip = $_SERVER['REMOTE_ADDR'];         
if($this->checkDublicateRating($article_id,$ip)==0)         
{              
$sql="INSERT INTO ratings 
SET rating_article_id = '".$article_id."', 
rating_num='".$rate_id."', rating_ip='".$ip."', 
rating_date=CURDATE()";
mysql_query ($sql);         
}     
}
 /// EOF

3. Create select_rating.php file with following piece of code

<?php /* 
Author: Prakash Bhandari 
Email:info@youngminds.com.np 
Date: Nov 5 2011 */ include("databaseconnection.php"); 
if(isset($_GET['articleID']) && is_numeric($_GET['articleID'])) 
{ 
$articleID = intval($_GET['articleID']);
echo selectRating($articleID); 
} 
?>

4. Create insert_rating.php file with following piece of code

<?php /*  
Author: Prakash Bhandari 
Email:info@youngminds.com.np 
Date: Nov 5 2011 */ 
include("databaseconnection.php"); 
if(isset($_GET['articleID']) && is_numeric($_GET['articleID']) 
&& $_GET['rateID'] && is_numeric($_GET['rateID'])) 
{ 
$rate_id = intval($_GET['rateID']); 
$article_id =intval($_GET['articleID']); 
insertRating($rate_id,$article_id); 
} 
?>

5. Create main file where you want to load the rating lets say index.php you can use following fiece of code in this page

<html>
<head>
<title>Rating</title> 
<script language="javascript" type="text/javascript"> 
$('.rating').live("click",function() {          
var id = $(this).attr("id");     
$('#loaderImage').html('<img src="images/loader.gif">');    
 var jqxhr = $.get("insert_rating.php
?articleID=<?php echo $articleID?>&rateID="+id);     
jqxhr.complete(function(){$('#loaderImage').fadeOut('fast');});                     
jqxhr.complete(function()
{$('#rating_select_area').
load("select_rating.php?articleID=<?php echo $articleID?>")});     
});/// end of unction     
</script> 
</head> 
<body> 
<div id="loaderImage"></div>         
<div id="rating_select_area">         
<?php echo selectRating($articleID); ?>         
</div> 
</body> 
</html>

WordPressStumbleUponShare


Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles





Latest Images