Ver Mensaje Individual
  #9 (permalink)  
Antiguo 07/03/2010, 10:06
koruitch
 
Fecha de Ingreso: marzo-2010
Mensajes: 41
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ranking en PHP+SQL

bueno voy a copiar aki el manual del sistema de ranking o votacion por estrellas que del que estais hablando lo copio pero le e arreglao algunos fallos en los nombres de los archivos y en el nombre de la base de datos que seguramente es lo que esta dando problemas luego pongo mi duda el sobre este sistema de votacion ranking.



1- Crear una imágen
Es necesario una imagen con 3 estrellas en diferentes tonalidades. El fondo de la imágen debe ser igual al fondo de la página o capa donde se utilizará al final de este manual dejo el enlace de donde lo saque yo ahi podeis descargaros la imagen o incluso todos
los archivos del manual mismo podeis darle a guardar como en la imagen y con cualquier programa modificais el fondo es muy sencillo la direccion del tutorial original y donde teneis una imagen con las estrellas es http://www.plantillaswebgratis.info/recursos/rank.php . Si se desea modificar el tamaño de la imágen recordar que se deberá cambiar la especificación del tamaño en el archivo css (rating.css).

todos los archivos k creemos ahora se copia en el bock de notas y se guardaran como y el nombre que esta en el titulo.

2- Archivo css (rank.css)

Código CSS:
Ver original
  1. .rank ul {
  2.  list-style: none;
  3.  margin: 3px;
  4.  padding: 0px;
  5.  width: 125px;
  6.  height: 25px;
  7.  position: relative;
  8.  background: url(rank.gif) top left repeat-x;
  9.  margin-left:0px;
  10. }
  11. .rank li {
  12.  padding: 0px;
  13.  margin: 0px;
  14.  float: left;
  15. }
  16. .rank li.current-rating {
  17.  background: url(rank.gif) left bottom;
  18.  position: absolute;
  19.  height: 25px;
  20.  display: block;
  21.  text-indent: -9000px;
  22.  z-index: 1;
  23. }
  24. .rank li a {
  25.  display: block;
  26.  width: 25px;
  27.  height: 25px;
  28.  text-decoration: none;
  29.  text-indent: -9000px;
  30.  z-index: 20;
  31.  position: absolute;
  32.  padding: 0px;
  33.  background-image: none;
  34. }
  35. .rank li a:hover {
  36.  background: url(rank.gif) left center;
  37.  z-index: 1;
  38.  left: 0px;
  39. }
  40. .rank a.star-1 {left: 0px;}
  41. .rank a.star-1:hover {width: 25px;}
  42. .rank a.star-2 {left: 25px;}
  43. .rank a.star-2:hover {width: 50px;}
  44. .rank a.star-3 {left: 50px;}
  45. .rank a.star-3:hover {width: 75px;}
  46. .rank a.star-4 {left: 75px;}
  47. .rank a.star-4:hover {width: 100px;}
  48. .rank a.star-5 {left: 100px;}
  49. .rank a.star-5:hover {width: 125px;}

Código fuente del ejemplo (index.html)

Código HTML:
Ver original
  1. <div class="rank">
  2.   <ul>
  3.     <li class="current-rating" style="width:100px;">Currently 4/5 Stars.</li>
  4.     <li><a href="#" title="dar 1 estrella de 5" class="star-1">1</a></li>
  5.     <li><a href="#" title="dar 2 estrellas de 5" class="star-2">2</a></li>
  6.     <li><a href="#" title="dar 3 estrellas de 5" class="star-3">3</a></li>
  7.     <li><a href="#"  title="dar 4 estrellas de 5" class="star-4">4</a></li>
  8.     <li><a href="#" title="dar 5 estrellas de 5" class="star-5">5</a></li>
  9.   </ul>
  10.   Rated <b>4</b>/5 estrellas (269 votos)
  11. </div>

con este archivo solo podras probar el efecto de las estrellas sin necesidad de la base de datos pero no
es el codigo final para la web solo es de prueba.

3- Creamos la Base de datos, tablas y registros
Ahora ya tenemos el aspecto gráfico de nuestro sistema de votos por estrellas, pero aún no realiza ninguna votación. Necesitamos almacenar las votaciones de los usuarios y para ello lo primero que deberemos hacer es una base de datos como se indica aqui abajo.
3.1- Crear la base de datos con el nombre bd_rank y entramos a ella con use.
abrimos la consola de mysql y ponermos:

Código MySQL:
Ver original
  1. create database bd_rank;
  2. use bd_rank
3.2-se puede crear nombre y usuario para esta base de datos yo en mi caso no pongo.
3.3-se crean las tablas y registros necesarios:

Código MySQL:
Ver original
  1. CREATE TABLE `votos_usuarios` (
  2.   `id` INT NOT NULL default '0',
  3.   `ip` char(15) NOT NULL default '',
  4.   `dataCreate` date NOT NULL default '0000-00-00'
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  6. CREATE TABLE `rank` (
  7.   `id` INT NOT NULL default '0',
  8.   `media` FLOAT NOT NULL default '0',
  9.   `votos` INT NOT NULL default '0'
  10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  11. INSERT INTO `rank` (`id`, `media`, `votos`) VALUES (1,0,0),(2,0,0);

Tabla rank: Esta tabla almacena el ranking de la página, sección o noticia que se reankea. Esta tabla contiene 3 campos. (id, media, votos), el primer identifica la página o sección que se quiere rankear, el campo media, contiene la media de votos (1 al 5) y el campo votos, el total de votos recibidos.
Tabla votos_usuarios: Esta tabla almacena temporalmente el identificador de la página o sección votada, el identificador del usuario (IP del ordenador del usuario) y la fecha en que se voto. Esta contiene datos temporales porque cada vez que un usuario realice un voto, comprobará los regístros y eliminará los que esan diferentes a la fecha actual y evitará que un mismo usuario vote a una misma página o sección más de una vez.

Última edición por koruitch; 07/03/2010 a las 10:23