Bueno, supongo que habréis visto sitios donde hay cinco estrellas y tu votas ¿no?.
Vamos a hacer un sistema igual idea por mi. (No me quitéis derechos de autor)
Empezemos:
Creamos el archivo con cualquier nombre yo le puse index.php xD, sigamos...
Tenemos que hacer la conexión a la base de datos:
<?php
mysql_connect("mi_servidor","mi_usuario","mi_contraseña");
mysql_select_db("mi_base_de_datos");
?>
Y ejecutamos un consulta SQL
CREATE TABLE IF NOT EXISTS `rating` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`voto` varchar(1) NOT NULL,
`ip` text NOT NULL,
`usuario` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Sigo explicando el código...
Teniendo ya nuestra conexión a la base de datos comenzamos
<?php
mysql_connect("mi_servidor","mi_usuario","mi_contraseña");
mysql_select_db("mi_base_de_datos");
if ($_GET['v'] <= 4 && $_GET['v'] >= 0 && is_numeric($_GET['v'])) // Comprobamos las variables del GET que sean números del 0 al 4
{
$votar = $_GET['v'] + 1; // Sumamos un valor a nuestro GET
mysql_query("INSERT INTO `rating` (`id`, `voto`, `ip`, `usuario`) VALUES (NULL, '".$votar."', '".$_SERVER['REMOTE_ADDR']."', '1');"); // Insertamos los datos obtenidos
echo "Has votado correctamente<br>"; // Mostramos un mensaje
}
$QryRating = mysql_query("SELECT * FROM rating WHERE usuario = '1'"); // Seleccionamos un usuario a votar
while ($rate = mysql_fetch_assoc($QryRating)) // Hacemos un while
{
$filas = mysql_num_rows($QryRating); // Contamos las filas del usuario
$votos += $rate['voto']; // Hacemos una suma de todos los votos
if ($_SERVER['REMOTE_ADDR'] == $rate['ip']) // Comprobamos que la ip no exista
{
$bloqueado = True; // Ponemos a $bloqueado igual a True
}
}
if ($bloqueado) // Si $bloqueado es igual a True
{
echo "Ya has votado aquí"; // Si es así mostramos un mensaje
} else { // Si $bloqueado no es igual a true
$total_votos = @round($votos/$filas); // Redondeamos los votos entre las filas
if ($total_votos > 0) // Si $total_votos es mayor que cero mostramos lo siguiente
{
for ($i = 0; $i < $total_votos; $i++) // Si $i es menor que $total_votos mostramos lo siquiente
{
?>
<img id="<?php echo $i; ?>" src="estrellas.png" onmouseover="this.src='estrellaso.png'" onmouseout="this.src='estrellas.png'" OnClick="location.href='?v=<?php echo $i; ?>'">
<?php
$resto = $i; // El resto de números lo metemos en la variable
}
for ($u = $resto+1; $u < 5; $u++) // Si $u es menor que cinco mostramos
{
?>
<img id="<?php echo $u; ?>" src="estrella.png" onmouseover="this.src='estrellaso.png'" onmouseout="this.src='estrella.png'" OnClick="location.href='?v=<?php echo $u; ?>'">
<?php
}
} else { // Si $total votos es igual a cero
for ($e = 0; $e < 5; $e++) // Si $e es menor que 5 mostramos
{
?>
<img id="<?php echo $e; ?>" src="estrella.png" onmouseover="this.src='estrellaso.png'" onmouseout="this.src='estrella.png'" OnClick="location.href='?v=<?php echo $e; ?>'">
<?php
}
}
}
Saludos, esto lo podéis modificar a vuestro gusto.