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

Cambio de un campo con el tiempo

Estas en el tema de Cambio de un campo con el tiempo en el foro de Mysql en Foros del Web. Hola, mi problema es el siguiente: tengo una página en la que tengo un campo que se refiere a si un usario está online o ...
  #1 (permalink)  
Antiguo 12/08/2009, 05:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 36
Antigüedad: 18 años, 7 meses
Puntos: 0
Cambio de un campo con el tiempo

Hola, mi problema es el siguiente:

tengo una página en la que tengo un campo que se refiere a si un usario está online o no. Simplemente puse un booleano que cuando ingresa se pone a 1 y cuando sale se pone a 0. El problema esq la mayoria de las veces la gente no le da a salir, sino que cierra la ventana, y se queda el usuario como conectado.

Me gustaría saber si hay algún modo que, tras unos 10 minutos por ejemplo, un campo cambie de valor. De modo que cada vez q entre en una pagina, el tiempo se actualice y cuando se haya ido, a los 10 minutos, se ponga desconectado.

Muchas gracias!!
  #2 (permalink)  
Antiguo 12/08/2009, 15:04
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Cambio de un campo con el tiempo

bueno como bien dices, mas facil q un booleano es guardar la fecha/hora de la ultima interaccion

de esta manera cuando revisas un usuario comparas si la hora es menor a 10minutos asi sabes si lo mostras o no cmo conectado

__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 12/08/2009, 16:35
 
Fecha de Ingreso: septiembre-2005
Mensajes: 36
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Cambio de un campo con el tiempo

el problema es como reviso un usuario. Para eso, tendría que ejecutarse automáticamente la revisión, pues si lo pusiera al inicio de una página, necesitaría que el usuario la vuelva a cargar y la cuestión es que se supone que a cerrado la página sin más...
  #4 (permalink)  
Antiguo 12/08/2009, 20:59
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Cambio de un campo con el tiempo

Yo creo que eso lo manejas mas fácil desde la aplicación que desde la base de datos.
Mirando la forma de ejecutar el botón salir, cuando el usuario cierra la pagina.

pregunta en el foro de el lenguaje de programación que uses,

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 13/08/2009, 05:25
 
Fecha de Ingreso: septiembre-2005
Mensajes: 36
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Cambio de un campo con el tiempo

si, yo tengo un boton de salir, q pone a 0 el booleano y estaría perfecto. Pero si alguien cierra la página sin darle, se keda el booleano a 1. La cosa es si hay alguna manera de que se esté ejecutando constantemente o cada cierto tiempo alguna instrucción dentro de la mysql.
  #6 (permalink)  
Antiguo 13/08/2009, 07:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Cambio de un campo con el tiempo

Creo que no hay forma desde mysql para hacer esto.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 13/08/2009, 07:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cambio de un campo con el tiempo

El modelo tal y como lo describes en el primer post no es ni práctico ni funcional, pecisamente por la razón que describes. No es posible, desde la base de datos verificar lo que se realiza en la web, porque está más allá de sus recursos.
MySQL No se comunica con la web, exactamente, sino al revés: tu accedes a un server de base de datos desde la web. Por lo tanto, lo que hagas en la web afectará a la base si y sólo si el servidor de web es quien controla lo que hagan los usuarios de las diferentes páginas. MySQL sólo puede controlar lo que pasa internamente, o responder a consultas que recibe, pero no genera consultas por sí mismo hacia la web...
Dicho esto, surgen dos posibilidades de resolución:
1. La mejor de todas sería controlar esto desde el mismo site, de modo de detectar cuando un usuario se ha "caído", o no está interactuando con la web. Eso es un problema de programación, se maneja dándole lifetime determinado a los objetos de sesión y lo deberás consultar con el Foro de PHP. En esencia se trataría de que la capa de negocios de tu web controle la vigencia de las sesiones, y en caso de no estar activa envíe por si misma la orden de actualizar los registros de sesiones terminadas.
2. El segundo caso es un poco más exigente en bases de datos: Controlar con un evento o un proceso programado en el servidor si los usuarios están o no activos.
Existe una sentencia que te puede mostrar qué usuarios están activos:
Código SQL:
Ver original
  1. SHOW FULL PROCESSLIST;
Esta sentencia te devuelve una tabla que en la segunda columna pone los username activos en el momento. El problema esencial es:
a) Necesitas que los usuarios se logueen contra el servidor de MySQL.
b) No puedes usar un usuario genérico.
c) Deberás darle permisos al usuario para tener una sola conexión activa al mismo tiempo.
d) El evento debe ser programado en el server MySQL, pero solamente puedes hacerlo con versiones de MySQL 5.1 en adelante, las que cuentan con CREATE EVENT, y la mayor parte de los host no tienen una versión superior a la 5.0.27.
e) Puedes, en vez del anterior, programar un evento cron en el server del host, pero eso dependerá de los privilegios que te den en el hosting.

Estas son las únicas alternativas que se me ocurren.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 13/08/2009, 16:40
 
Fecha de Ingreso: septiembre-2005
Mensajes: 36
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Cambio de un campo con el tiempo

muchas gracias por la informacion. Ya estuve viendo el tema de los cron, pero creo q no puedo en mi hosting. Investigaré el otro tema.

Muchas gracias por la explicación!
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 11:47.