Ver Mensaje Individual
  #9 (permalink)  
Antiguo 31/03/2010, 09:04
el_astuto
 
Fecha de Ingreso: enero-2010
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calificacion con estrellas en PHP

Código PHP:
Ver original
  1. <?php
  2. /*
  3. MOD BY MARCOFBB, AUTOMATIZADO Y MEJORADO, CON SISTEMA DE PASS Y TODO :P
  4.  
  5.  
  6. */
  7. $pass2 = "1"; // la pass para que nadie pueda crear ranking
  8. $web = "www.tuweb.com.ar"; // tu web xD no es nesesario pero para que quede mas automatisado el script
  9.     //funcion para conectar con la base de datos
  10.     function conectar(){
  11.         // Conexión a la base de datos
  12.         $dbhost='localhost';
  13.         $dbusername='root'; //nombre del usuario
  14.         $dbuserpass='marco'; //password o contraseña del usuario      
  15.         $dbname='rank';//nombre de la base de datos
  16.         $link = mysql_connect($dbhost, $dbusername,$dbuserpass);
  17.         mysql_select_db($dbname, $link);
  18.            
  19.         return $link;
  20.     }
  21.        
  22.     $id = $_GET['id'];//pagina, apartado o noticia que se quiere votar
  23.    
  24.     if($id!=""){
  25.         $voto = $_GET['v'];//voto del usuario
  26.         $link = conectar();//conectamos a la base de datos         
  27.        
  28.         //obtenemos la IP del usuario
  29.         if ($_SERVER) {
  30.             if ( $_SERVER[HTTP_X_FORWARDED_FOR] ) {
  31.                 $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  32.             } elseif ( $_SERVER["HTTP_CLIENT_IP"] ) {
  33.                 $realip = $_SERVER["HTTP_CLIENT_IP"];
  34.             } else {
  35.                 $realip = $_SERVER["REMOTE_ADDR"];
  36.             }
  37.         } else {
  38.             if ( getenv( "HTTP_X_FORWARDED_FOR" ) ) {
  39.                 $realip = getenv( "HTTP_X_FORWARDED_FOR" );
  40.             } elseif ( getenv( "HTTP_CLIENT_IP" ) ) {
  41.                 $realip = getenv( "HTTP_CLIENT_IP" );
  42.             } else {
  43.                 $realip = getenv( "REMOTE_ADDR" );
  44.             }
  45.         }                  
  46.                                                        
  47.         $fecha = date('Y-m-d');
  48.         //actualizamos la tabla de votos realizadas por los usuarios y borramos lo que sean del dia anterior
  49.         $result = mysql_query("DELETE FROM votos_usuarios WHERE dataCreate <> '".$fecha."'",$link);
  50.    
  51.         //comprobamos que este usuario ya no haya realizado un voto (identificacion por IP)
  52.         $result = mysql_query("SELECT *FROM votos_usuarios WHERE ip = '".$realip."' and id = $id",$link);                              
  53.         $row = mysql_fetch_row($result);
  54.        
  55.         //el usuario no ha votado para este apartado
  56.         if($row[0]==""){   
  57.             $result = mysql_query("SELECT votos,media FROM rank WHERE id =$id",$link);
  58.             $row = mysql_fetch_row($result);
  59.        
  60.             $auxmedia = $row[1];       
  61.             $votos =$row[0] + 1;           
  62.             $media = (($row[0] * $auxmedia) + $voto)/ $votos;          
  63.             //actualizamos el voto                         
  64.             $result = mysql_query("UPDATE rank SET votos= $votos, media= $media WHERE id= $id",$link);             
  65.             mysql_query("INSERT INTO votos_usuarios(id,ip,dataCreate)VALUES($id,'".$realip."','".$fecha."')",$link);           
  66.             echo "voto realizado";
  67.         }else{ //el usuario ya ha votado para este apartado
  68.             echo "Usted ya ha votado"; 
  69.         }
  70.     }
  71. ?>

esta es la del rank.php

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Ejemplo Ranking CSS-Ajax-Php</title>
  6. <link rel="stylesheet" type="text/css" href="rank/rank.css"/>
  7.     <script type="text/javascript" src="rank/rank.js"></script>    
  8. </head>
  9.  
  10. <body>
  11. <?php
  12. $id2 = strip_tags($_GET['id']);
  13. ?>
  14. <?php
  15.         include("rank/rank.php");
  16.        
  17.         $link = conectar();
  18.         $result = mysql_query("SELECT id,votos,media FROM rank where id=$id2",$link);
  19.         $row = mysql_fetch_row($result);
  20.         if($row){      
  21.             echo '<div class="rank">';
  22.             echo '<ul>';
  23.             echo '<li class="current-rating" style="width:'.($row[2] * 25).'px;">Currently '.$row[2].'/5 Stars.</li>';
  24.             echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=1\',\'page'.$row[0].'\',true)" title="dar 1 estrella de 5" class="star-1">1</a></li>';
  25.             echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=2\',\'page'.$row[0].'\',true)" title="dar 2 estrellas de 5" class="star-2">2</a></li>';
  26.             echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=3\',\'page'.$row[0].'\',true)" title="dar 3 estrellas de 5" class="star-3">3</a></li>';
  27.             echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=4\',\'page'.$row[0].'\',true)"  title="dar 4 estrellas de 5" class="star-4">4</a></li>';
  28.             echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=5\',\'page'.$row[0].'\',true)" title="dar 5 estrellas de 5" class="star-5">5</a></li>';
  29.             echo '</ul>';
  30.             echo 'Rated <strong>'.$row[2].'</strong>/5 estrellas ('.$row[1].' votos)';
  31.             echo '<span id="page'.$row[0].'" style="color:#ff0000;"></span>';
  32.             echo '</div>';
  33.         }
  34.     ?> 
  35. </body>
  36. </html>

y esta del index.php

Última edición por el_astuto; 31/03/2010 a las 09:32