viernes, 28 de octubre de 2016

Raking en tu pagina web. PHP

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>

Resultado de imagen de rateyo

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


No hay comentarios:

Publicar un comentario