Consulta juego

Hola, estoy realizando un juego, quiero mostrarle al usuario su numero de ranking, mientras más puntos tiene un usuario mejor ranking tiene.
El problema es cómo elaborar la query, yo quiero que me de como resultado sólo el numero de la posición en el ranking. Algo como:
select (posicion where usuario='$usuario') from pro2006 order by exp as des.
Gracias

1 respuesta

Respuesta
1
Supongamos que el campo "puntos" es el que almacena los puntos, lo harías así:
select * from pro2006 where usuario='$usuario' order by puntos desc limit 0,10
Y así obtendrías desde el primero al 10.
1
2
3
4
5
6
7
No, lo que quiero es que me aparezca el ranking, osea el numero de posición del $usuario al ordenar por $puntos
inicializas $x=0;
y dentro del while pones primero $x++; antes de imprimir el usuario. Ejemplo
$x=0;
while($=mysql_fetch_array($res)){
$x++;
echo $x.' - '.$r[usuario];
}
¿Pongo eso así suelto o tengo que ponerle una query? que es $res? Gracias
Asumo que habrás hecho alguna consulta, debes adaptarlo a tu forma de hacer las querys.
Tradicionalmente y asumiendo que existe una conexión sería así:
$q="select * from pro2006 where usuario='$usuario' order by puntos desc limit 0,10";
$res=mysql_query($q);
$x=0;
while($=mysql_fetch_array($res)){
$x++;
echo $x.' - '.$r[usuario];
}
Me aparece esto:
Parse error: parse error, unexpected '=', expecting T_VARIABLE or '$' in /home/ju000100/public_html/pk/dex.php on line 50
la linea 50 es:
while($=mysql_fetch_array($res)){
C me olvido una r
$q="select * from pro2006 where usuario='$usuario' order by puntos desc limit 0,10";
$res=mysql_query($q);
$x=0;
while($r=mysql_fetch_array($res)){
$x++;
echo $x.' - '.$r[usuario];
}
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/ju000100/public_html/pk/dex.php on esa misma linea:
while($r=mysql_fetch_array($res)){
1- ¿Estas conectado a la base de datos en donde está la tabla pro2006?
2- Pro2006 es la tabla donde se almacenan usuarios y puntos
3- El nombre del campo usuario es usuario
4- En el ejemplo se asume que la variable $usuario tiene un valor
5- ¿Existe un campo que se llama puntos?
Ahora funciona, pero siempre me muestra al usuario en el rank 1 cuando debería estar en el 3...
No entiendo
La pantalla imprime:
1 - tuty
Osea, que en el ranking numero 1 está el usuario mio con el nombre de tuty, pero ese usuario no tiene que estar en #1 sino en el ranking #3...
order by puntos desc limit 0,10
Ahí ordena por puntos del mayo al menor y limita a 10 resultados
No se que cambiaste por ultimo
No, no cambié nada, ¿sólo qué no muestra el ranking que debería mostrar sino que siempre muestra el numero 1 para el usuario que debería ser numero 3. se entiende?
Ah
quitale el where usuario='$usuario'
Bien, ahora me imprime así:
1 - niko 2 - que_capo 3 - tuty
Yo soy el usuario tuty, pero sólo quiero que me aparezca mi numero de ranking, osea: 3.
$q="select * from pro2006 order by puntos desc";
$res=mysql_query($q);
$x=0;
while($r=mysql_fetch_array($res)){
$x++;
if ($r[usuario]=='$usuario'){
echo 'Tu Ranking es: '.$x;
}
}
Genial!
¿Ahora si tengo más de 10 usuarios debo modificar algo o ya está todo automatizado?
Ya esta porque le quite el limit 0,10

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas