Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ordenar una consulta y obtener un ranking

Estas en el tema de Ordenar una consulta y obtener un ranking en el foro de Mysql en Foros del Web. Buenas, quiero hacer una base de datos de puntuaciones, de forma que ordene los datos de mayor a menor puntuación, algo similar a las clasificaciones ...
  #1 (permalink)  
Antiguo 07/10/2012, 09:56
 
Fecha de Ingreso: octubre-2012
Mensajes: 27
Antigüedad: 11 años, 6 meses
Puntos: 0
Ordenar una consulta y obtener un ranking

Buenas, quiero hacer una base de datos de puntuaciones, de forma que ordene los datos de mayor a menor puntuación, algo similar a las clasificaciones deportivas.

El caso es que me gustaría saber si existe la forma de crear un campo que asigne el 1º a la puntuación más alta en ese momento, el 2º a la segunda, etc... y que si entra una nueva puntuación más alta que las demás, el 1º pase a esa puntuación y las demás bajen una puntuación.

Lo quiero poder mostrar en una web con PHP.

Gracias.
  #2 (permalink)  
Antiguo 08/10/2012, 06:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ordenar una consulta y obtener un ranking

Lo puedes hacer por programación en php

SELECT * FROM tutabla ORDER BY puntos DESC

Te da la ordenación que buscas, primero el que tiene mas puntos ....

Luego en PHP solo tienes que usar un numerador al listar por orden esos registros...

$y=1
Inicio bucle
echo $y. Registro
$y++;
fin bucle

Tambien puedes hacerlo en la propia consulta consulta, pero és inecesario

Código MySQL:
Ver original
  1.        (@a:=@a+1) contador,
  2.        ...lista de campos...
  3.     FROM tuTabla JOIN (SELECT @a:= 0) T
  4. ORDER BY puntos DESC

En cualquier caso NO CREES un campo con esa información puesto que seria un CAMPO CALCULADO y eso es UN ERROR de diseño.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 08/10/2012, 07:51
 
Fecha de Ingreso: octubre-2012
Mensajes: 27
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Ordenar una consulta y obtener un ranking

Muchas gracias quimfv, entiendo lo que me dices de no crear un campo.

Lo único que no logro ser capaz de llevar ese dato calculado a la tabla que toma los datos de la database. ¿Como hago eso?

Igual es mejor que pregunte en el foro de PHP, porque esto ya escapa de la base de datos realmente.

Gracias.
  #4 (permalink)  
Antiguo 08/10/2012, 10:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ordenar una consulta y obtener un ranking

Te he dado dos opciones una con programación php (simulada las reglas del foro no me permiten mas)

Y otra totalmente sql, la segunda te da el numerador junto con los datos...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 08/10/2012, 12:33
 
Fecha de Ingreso: octubre-2012
Mensajes: 27
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Ordenar una consulta y obtener un ranking

Muchas gracias quimfv, veré lo que soy capaz de hacer!

Etiquetas: php, ranking, campos
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 09:01.