Para hacer el Raking utilice el puglin de
rateyo
Luego cree un div en mi pagina y con el id del div, invoque las funciones que ofrece rateyo:
<div id="ratediv" style="float: left;"></div>
<?if ($row_votes['vote']==''){?> // Si el usuario no ha votado
<span id="des_rating"><strong> User Rating </strong></span></div>
<?}else{?> // Si el usuario ya voto
<span id="des_rating"><em><strong> Your Rating </strong></em></span></div>
<?}?>
Luego
<script type="text/javascript">
jQuery( document ).ready( function() {
<? if ($row_votes['vote']==''){?> // Si esta Ip no ha votado
$("#ratediv").rateYo({
rating: <? echo $row_r2['raking'];?>, // Mostrar el total hasta ahora
halfStar: true,
starWidth: "20px"
});
$("#ratediv").rateYo().on("rateyo.set", function (e, data) {
$("#des_rating").html("<strong>Thank you!<strong>");
$("#rateEdilnet").rateYo("option", "readOnly", true); //returns a jQuery Element
$.ajax({
url: "/get_votes.php", // Crear este archivo PHP
type: "GET",
data: {rate: data.rating},
});
});
<?}else{?>
$("#ratediv").rateYo({
rating: <? echo $row_votes['vote'];?>, // Mostrar el voto de este usuario
starWidth: "20px",
readOnly: true
});
<?}?>
});
</script>
El Archivo get_votes.php, es un archivo que insertara en dos tablas:
Una tabla guarda el valor del voto y la ip que lo hizo
La otra tabla, guarda cuanto han votado y la suma de esos valores votados entre la cantidad de votantes.
$query_v1 = "INSERT INTO votes_daily (`vote`, `ip`) VALUES ('".$_GET['rate']."','".getRealIP()."')";
mysql_query($query_v1, $sql) or die("Errore MySQL $query_v1: (" . mysql_errno() . ") " . mysql_error());
$query_v2 = "SELECT * FROM raking";
$result = @mysql_query($query_v2, $sql) or die("Errore MySQL: $query_v2 (".mysql_errno().") ".mysql_error());
$row_v2= @mysql_fetch_array($result);
$v = round((($row_v2['raking']+$_GET['rate'])/($row_v2['n_users']+1)),2);
echo $query_v3 = "UPDATE tb_raking SET raking =". $v .", n_users=". ($row_v2['n_users']+1);
mysql_query($query_v3, $sql) or die("Errore MySQL $query_v3: (" . mysql_errno() . ") " . mysql_error());
La tabla 1, puede ser eliminada diariamente o anual, dependiendo de lo que se necesite para tu site