Autor Tema: [Ayuda] Mostrar numero en ranking  (Leído 456 veces)

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
[Ayuda] Mostrar numero en ranking
« en: 26 de Julio de 2011, 04:02:08 am »
Hola gente  ;)

Necesito vuestra ayuda.

He creado un portal de perfiles, y lo que quiero hacer es poner en cada perfil un boton de "ME GUSTA". Cada vez que se da a ese botón, lo que hace es que se inserta en la db un nuevo voto. Hasta aqui lo tengo todo bien hecho.

Luego en el perfil de cada persona, he puesto un num_rows para contabilizar los votos y mostrarlos, pero lo que quiero hacer es un Ranking, en el que a cada usuario le ponga su posición según los votos que tenga de mayor puntuación a menor.

He estado mirando algunos tutos en internet, pero todo han sido intentos fallidos.

Espero que alguno de vosotros pueda darme una solucion sobre como montarlo.

¡IMPORTANTE! NO QUIERO CÓDIGO, QUIERO SABER COMO PODRÍA HACERLO, Y SI SE MUESTRA UN CÓDIGO, QUE SEA CON SU EXPLICACIÓN.

¡¡GRACIAS!!

Comunidad PHPeros

[Ayuda] Mostrar numero en ranking
« en: 26 de Julio de 2011, 04:02:08 am »

Desconectado ilovepixel

  • PHPer@ Fijo
  • ***
  • Mensajes: 149
  • Karma: 9
  • Sexo: Masculino
  • Game Artist & Developer
    • Ver Perfil
    • i ■ pixel
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #1 en: 26 de Julio de 2011, 04:21:12 am »
Almacenas los votos como sumas, por ejemplo: el usuario pedro tiene votos = 10.

Si es así lo que te podría servir es el" ORDER BY votos "de mysql para ordenar de el mas votado al menos votado.

Saludos

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #2 en: 26 de Julio de 2011, 18:24:02 pm »
Buena idea xdd No se me habia ocurrido jejeje.

Lo que yo quiero es como hacen muchas páginas, además de ordenarlos por botos, arriba poner tu posición, es decir:



1.- Pedro = 1000 votos
2.- Antonio = 900 votos
3.- Juan = 800 votos
--------------------------------
300.- Yo = 10 votos


No se si me entendeis, pero lo que quiero por ejemplo es mostrar los 3 primeras posiciones y debajo mi posición con mi número en el ranking y los votos que yo tengo.

Lo de los tres primeros si que se hacerlo dado que es un ORDER BY votos LIMIT 3 pero el mostrar mi posición no :S

Desconectado ilovepixel

  • PHPer@ Fijo
  • ***
  • Mensajes: 149
  • Karma: 9
  • Sexo: Masculino
  • Game Artist & Developer
    • Ver Perfil
    • i ■ pixel
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #3 en: 26 de Julio de 2011, 18:42:48 pm »
Podrías hacer dos querys, uno que sea para los 3 mejores votados y otro que entregue la cantidad de votos que tienes tu

no sé si este sirva pero algo como

SELECT votos FROM users WHERE username = "$miUser"

Eso te entregaría la cantidad de votos de tu usuario, y podrías imprimirlo como
Mis Votos:  10.

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #4 en: 26 de Julio de 2011, 18:55:13 pm »
Podrías hacer dos querys, uno que sea para los 3 mejores votados y otro que entregue la cantidad de votos que tienes tu

no sé si este sirva pero algo como

SELECT votos FROM users WHERE username = "$miUser"

Eso te entregaría la cantidad de votos de tu usuario, y podrías imprimirlo como
Mis Votos:  10.

Si pero a lo que yo me refiero es además de contabilizar mis votos, imprimir en la posición en la que estoy.

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #5 en: 26 de Julio de 2011, 20:06:29 pm »
Lo que puedes hacer, es crear una variable numérica que inicie en 1, y que cada vez que recorra el bucle, se vaya aumentando. Algo así:

$posicion 1;

while(
$row mysql_fetch_array($query))
{
    echo 
$posicion// Muestras la posicion
    // Acá muestras lo demás del código...
    
$posicion++; // Aumentas en 1 la posicion, para que si esta vez mostró 1, la próxima vez muestre 2 y así sucesivamente...
}


Espero te sea de ayuda ^^
Saludos.
- Moderador de PHP


Desconectado ilovepixel

  • PHPer@ Fijo
  • ***
  • Mensajes: 149
  • Karma: 9
  • Sexo: Masculino
  • Game Artist & Developer
    • Ver Perfil
    • i ■ pixel
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #6 en: 26 de Julio de 2011, 20:14:07 pm »
Así te muestra el numero mas alto con ranking 1

Código: [Seleccionar]
SET @ranking=0;
SELECT @ranking:=@ranking+1 AS ranking, username, votos FROM user ORDER BY votos DESC

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #7 en: 27 de Julio de 2011, 01:54:33 am »
Lo que puedes hacer, es crear una variable numérica que inicie en 1, y que cada vez que recorra el bucle, se vaya aumentando. Algo así:

$posicion 1;

while(
$row mysql_fetch_array($query))
{
    echo 
$posicion// Muestras la posicion
    // Acá muestras lo demás del código...
    
$posicion++; // Aumentas en 1 la posicion, para que si esta vez mostró 1, la próxima vez muestre 2 y así sucesivamente...
}


Espero te sea de ayuda ^^
Saludos.

Gracias Walox!!

Lo he hecho así pero con , y solo muestro mediante un if el numero del ranking 1, 2 y 3. Y aparte le e puesto un if para mostrar despues solamente mis datos tambien mediante un if. De esta forma me muestra los 3 primeros puestos y muestra mis datos dado que el bucle sigue aumentando aunque solo muestre mi puesto en ranking. Me ha sido de mucha ayuda.

K+ que te lo has merecido.

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:[Ayuda] Mostrar numero en ranking
« Respuesta #8 en: 27 de Julio de 2011, 05:46:30 am »
¡Gracias!
Cierro tema
- Moderador de PHP