Como crear un ranking

Iniciado por layker, 15 Mayo 2008, 10:19 AM

0 Miembros y 1 Visitante están viendo este tema.

layker

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..

Ertai

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 (sql) [Seleccionar]
SELECT usuario, sum(votos) FROM votos GROUP BY usuario

Incluso podrias meter condiciones con el HAVING...

Código (sql) [Seleccionar]
SELECT usuario, sum(votos) FROM votos GROUP BY usuario HAVING edad_usuario > 18

Saludos...
Si la felicidad se comprara, entonces el dinero sería noble.


void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}

chrominum

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()).