Foros del Web » Programando para Internet » PHP »

Mostrar posicion de ranking

Estas en el tema de Mostrar posicion de ranking en el foro de PHP en Foros del Web. Wenas! Bueno, estoy desarrollando un sitio, el cual tiene un ranking de posts (Top posts) que se guia por los puntos que tiene almacenado en ...
  #1 (permalink)  
Antiguo 24/05/2010, 13:21
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Mostrar posicion de ranking

Wenas!

Bueno, estoy desarrollando un sitio, el cual tiene un ranking de posts (Top posts) que se guia por los puntos que tiene almacenado en la DB cada post.

Mi duda es: ¿Cómo hago para que en cada post, muestre su posicion en el ranking?

Desde ya muchas gracias,
Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #2 (permalink)  
Antiguo 24/05/2010, 13:47
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Mostrar posicion de ranking

Eso basicamente tendrias que analizarlo al nivel de la base de datos.

Por ejemplo si tienes una tabla donde dejas la puntuacion:
Código:
tabla puntuaciones
id_puntuacion
puntuacion
id_post
Puedes hacer algo como:
Código:
SELECT id_post, SUM(puntuacion) as puntaje
FROM puntuaciones
GROUP BY id_post
De esa manera solo muestras puntaje y el mySQL hace el trabajo de armar tus datos.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 24/05/2010, 20:17
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Mostrar posicion de ranking

Holas Marvin,

Gracias por tu respuesta!

Aunque, me quede horas viendo como utilizarlo todavia no lo entiendo.

En lo que tengo duda es en cómo podria hacer para saber, por ejemplo en que lugar del ranking está el post 'lalala'.
La DB es:
Código:
Tabla posts
titulo
puntos
Se que no es lindo estar horas y horas ayudando a un usuario pero, si me podrias explicar un poquito más, te agradeceria muchisimo

Gracias,
Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #4 (permalink)  
Antiguo 25/05/2010, 08:41
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Mostrar posicion de ranking

Okales.. en tu caso tienes la puntuacion y el post en una misma tabla...

Para saber en que lugar del ranking esta el post 'lalala' tendrias que hacer algo como esto:
Código:
SELECT titulo, puntos
FROM posts
ORDER BY puntos DESC
Y esto lo guardas en un arreglo
Código PHP:
$sql "SELECT titulo, puntos
        FROM posts
        ORDER BY puntos DESC"
;
$result mysql_query($sql);
$a 0;
while(
$data mysql_fetch_array($result)){
    
$arrPost[$a]['titulo'] = $data['titulo'];
    
$arrPost[$a]['puntos'] = $data['puntos'];
    
$a++;

Entonces si estas en el post 'lalala' puedes preguntar esto:
Código PHP:
for($i=0;$i<$a;$i++){
    if(
$arrPost[$i]['titulo'] == 'lalala'){
        echo 
'La puntuacion de post lalala = '.$arrPost[$i][puntos];
    }

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 25/05/2010, 10:36
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Mostrar posicion de ranking

Muchas gracias Marvin,

Ahora si anduvo todo bien :)

Va karma!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter

Etiquetas: posicion, ranking
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 06:55.