Foros del Web » Programando para Internet » PHP »

Problemas ranking

Estas en el tema de Problemas ranking en el foro de PHP en Foros del Web. Hola de nuevo gente, tengo un pequeño problema que no se como solucionar! Tengo un ranking de posiciones que ordena por nivel del usuario (hasta ...
  #1 (permalink)  
Antiguo 28/04/2005, 10:25
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Exclamación Problemas ranking

Hola de nuevo gente,

tengo un pequeño problema que no se como solucionar!

Tengo un ranking de posiciones que ordena por nivel del usuario (hasta aqui normal)

1. Anne 100
2. Osmar 100
3. Jorce 100
4. Lady Luna 100


Cuando visualiza el ranking general ordena primero por nivel y si hay muchos empatados (por ejemplo con 100 de nivel) no se como me los ordena pero creo que es por id que es la llave primaria de la tabla.

En la ficha de usuario, para extraer la posicion le decía select * from tabla where nivel >= mi_nivel (que extrajera de la db todos los que había encima y el numero de rows que me diera esa era su posicion pero si hay alguno empatado contigo siempre te pondrá por detrás de estos. ejemplo
En la ficha de anne me sale que soy 5; En el ranking dice que soy el 1
Y en la de Osmar 5; En el ranking 5...

Una ayudita para ver como se haría gracias

Un saludo
  #2 (permalink)  
Antiguo 28/04/2005, 10:30
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
Para el ranking
"SELECT * FROM tabla WHERE nivel >= mi_nivel ORDER BY id DESC"

Para tu posicion
"SELECT count(*) as miranking FROM table WHERE (nivel >= minivel) OR (nivel = minivel AND id <= mi_id)"

cambié la otra consulta porque si tenés mil personas arriba tuyo no necesitas recuperar la información de los mil, sino saber cuantos son... así q sería más rápido así
  #3 (permalink)  
Antiguo 28/04/2005, 14:48
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Hola seppo,
me sigue dando igual.

En el ranking anne esta la primera y en la ficha de usuario sale la 4ª (la ultima ya que solo hay 4)
  #4 (permalink)  
Antiguo 28/04/2005, 14:55
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Hola seppo ya me funciona,

Código PHP:
Para tu posicion
"SELECT count(*) as miranking FROM table WHERE (nivel > minivel) OR (nivel = minivel AND id <= mi_id)" 
Escribiste nivel >= minivel sin darte cuenta. Un saludo y muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:48.