Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: layker en 15 Mayo 2008, 10:19 am



Título: Como crear un ranking
Publicado por: layker en 15 Mayo 2008, 10:19 am
Hola, tengo un sistema de votos en mi pagina, en el que inserto el nombre del usuario votado, y el valor de del voto en la bd,

luego para ver los votos lo llamo de la siguiente manera:

Código PHP:

$query = "SELECT sum(voto) FROM `votos` WHERE usuario='$user';";
        $con = mysql_query($query);
        $total = mysql_fetch_array($con);
pero ahora me ha surgido la idea de crear un rankig para los mas votados... me he calentado muxo la cabeza pero no se como sumar todos los votos de todos los usuarios, ver el que mas puntuacion tenga y clasificarlo, supongo que sera una consulta mysql..

me han aconsejado hacer una tabla que contenta
id_usuario
n_votos ...numero de votos
s_votos ... suma de los votos
p_votos ... promedio de votos

y otra que controle los votos al dia para que no puedan votar ma veces
como seria la mejor manera de hacerlo??
he pensad en crear una tabla que contenga
id_voto, usuario_votado, nº_vosts, pts_media, votosal_1,votosal_2,votosal_3,votosal_4,votosal_5. ..votosal_10

y luego ir actualizandola...
y luego aparte una que controle los botos al dia...

seria correcto?'??
ske quiero luego hacer estadisticas..


Título: Re: Como crear un ranking
Publicado por: Ertai en 16 Mayo 2008, 09:20 am
Tengo mucha prisa, así que te lo pongo sin probar, nosé si estara bien o es lo que pides. Luego lo reviso con calma.

Código
  1. SELECT usuario, SUM(votos) FROM votos GROUP BY usuario

Incluso podrias meter condiciones con el HAVING...

Código
  1. SELECT usuario, SUM(votos) FROM votos GROUP BY usuario HAVING edad_usuario > 18

Saludos...


Título: Re: Como crear un ranking
Publicado por: chrominum en 18 Mayo 2008, 17:43 pm
Lo de controlar los votos al dia podrias hacerlo con una cookie, pero si quieres mas seguridad puedes guardar en la base de datos la IP y la fecha en que votaron (con la función time()).