Foros del Web » Programando para Internet » PHP »

Actualizar base de datos

Estas en el tema de Actualizar base de datos en el foro de PHP en Foros del Web. Hola amigos!! bueno tengo un problema quisiera me ayuden . taengo una tabla de usuarios en la cual hay 3 campos puntos, nivel,posicion_rank. los puntos ...
  #1 (permalink)  
Antiguo 14/05/2011, 12:52
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Actualizar base de datos

Hola amigos!!
bueno tengo un problema quisiera me ayuden .
taengo una tabla de usuarios en la cual hay 3 campos puntos, nivel,posicion_rank.
los puntos van de 50 en 50 .
ejemplo:
50 puntos - primer nivel
100 puntos - segundo nivel
150 puntos - tercer nivel, etc..

ahora quiero actualizar esos campos dependiendo la cantidad de puntos que tengan ,ejemplo .
el que tiene 150 puntos que pase al rank 1(campo posicion_rank)
y nivel 3.
100 puntos que pase al rank 2 y nivel 2.
50 puntos que pase al rank 3 y nivel 1.

pueden tener mucho mas puntos pero el que tenga una mayor cantidad que pase al primero y asi desendiendo.
espero me ayuden muchas gracias.
  #2 (permalink)  
Antiguo 14/05/2011, 15:34
 
Fecha de Ingreso: abril-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 1
Respuesta: Actualizar base de datos

Hola,

Pues tendrías que hacer algo así:

update nombre_tabla set rank=3, nivel=1 where puntos >=50 and puntos < 100;
update nombre_tabla set rank=2, nivel=2 where puntos >=100 and puntos < 150;
update nombre_tabla set rank=1, nivel=3 where puntos >=150;

y en la consulta para ordenarlos por puntos,

select nombre_campo from nombre_tabla order by puntos;

Saludos
  #3 (permalink)  
Antiguo 14/05/2011, 15:45
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Actualizar base de datos

Suponiendo que hay un 4 rango que es de 50-

Que agregue de una vez
UPDATE nombre_tabla SET posicion_rank = 4, nivel = 0 where puntos < 50
  #4 (permalink)  
Antiguo 14/05/2011, 16:33
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Actualizar base de datos

Cita:
y en la consulta para ordenarlos por puntos,
select nombre_campo from nombre_tabla order by puntos;
Gracias.

pero No quiero ordenarlos en la consulta, sino ordenarlos en la tabla.
son 20 niveles y muchos usuarios.como lo hago para ordenarlos en la tabla y no en la consulta :D

Código PHP:
("UPDATE nombre_tabla SET nivel='3' WHERE puntos >= 150 and puntos < 200 and nivel != 3"); 
esa consulta estaria bien!!?
  #5 (permalink)  
Antiguo 14/05/2011, 16:39
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Actualizar base de datos

Y por qué no la pruebas antes de preguntar si está bien o no?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 14/05/2011, 16:43
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Actualizar base de datos

Sourcegeek
Porque estoy en un Cyber y no en mi Pc ¬¬
  #7 (permalink)  
Antiguo 14/05/2011, 16:44
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Actualizar base de datos

¿No es un poco innecesario ese update?
Sólo necesitarías guardar un número.
¿Para que estar comprobando y ordenando?

Si cada usuario aumenta su rank dependiendo vamos a suponer cada vez que postee, haces un update, actualizas su número y dependiendo del rango escribes su posición. (si la idea fuera similar a un foro)

- Usuario postea
- Update y +X en el campo de post
- Muestras su nivel haciendo un echo dependiendo del número de rank.

if($result['rank']>=50) $rank='Iniciado';
if($result['rank']>=100) $rank='Avanzado';
...
if($result['rank']>=1000) $rank='Despégate del ordenador';

¿Que importa así como se ordene en la tabla?
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #8 (permalink)  
Antiguo 14/05/2011, 16:44
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Actualizar base de datos

Al parecer está bien, pero necesitas probarlo de una u otra forma en tu servidor.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #9 (permalink)  
Antiguo 14/05/2011, 17:05
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Actualizar base de datos

IEKK
Es un juego que solo aumenta los puntos en la base de datos, y muestra a la vez los puntos y el nivel mas la posición del usuario.
la consulta del Juego es asi" update mi_tabla set puntos = puntos + 1 where user = $user"

es por eso que nesecito un actualizador
muchas gracias por sus respuestas.
  #10 (permalink)  
Antiguo 14/05/2011, 18:03
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Actualizar base de datos

Cita:
Iniciado por experimenta Ver Mensaje
Gracias.

pero No quiero ordenarlos en la consulta, sino ordenarlos en la tabla.
son 20 niveles y muchos usuarios.como lo hago para ordenarlos en la tabla y no en la consulta :D

Código PHP:
("UPDATE nombre_tabla SET nivel='3' WHERE puntos >= 150 and puntos < 200 and nivel != 3"); 
esa consulta estaria bien!!?
Al hacer el select con esa consulta que te mostro, cuando los muestres en la consulta ya estaran ordenados.
  #11 (permalink)  
Antiguo 14/05/2011, 18:38
 
Fecha de Ingreso: abril-2010
Mensajes: 159
Antigüedad: 14 años
Puntos: 11
Respuesta: Actualizar base de datos

Bueno muchas gracias estube en mi pc probando!!
y lo solucione como ordenar el rank quien tiene mas puntos desde el primero al ultimo.

este codigo se puede reducir en menos lineas?
Código PHP:
$query mysql_query("SELECT *FROM mitabla ORDER BY puntos DESC");
$i=0;
while(
$r=mysql_fetch_array($query)){
    
$i++;
    
mysql_query("UPDATE mitabla SET rank ='".$i."' WHERE user = '".$r[0]."'");
    } 

Etiquetas: Ninguno
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.