Foros del Web » Programando para Internet » PHP »

Mostrar última visita

Estas en el tema de Mostrar última visita en el foro de PHP en Foros del Web. Hola a todos...! Tengo una BD MySQL con un campo "extra_info" (tipo varchar) donde guardo la fecha de inicio de sesión del Usuario y se ...
  #1 (permalink)  
Antiguo 27/09/2011, 11:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Mostrar última visita

Hola a todos...!

Tengo una BD MySQL con un campo "extra_info" (tipo varchar) donde guardo la fecha de inicio de sesión del Usuario y se actualiza cada vez que lo hace. Pero me gustaría mostrar la última vez que inició sesión.

He leído pero estoy muy confundido de como implementarlo. Por favor, me podrían orientar o ayudar?
  #2 (permalink)  
Antiguo 30/09/2011, 02:24
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Mostrar última visita

Si actulizar el valor cada vez que el usuario inicia session, entonces te basta con mostrar ese valor. Si lo que haces es gaurdar cada inicio de session en un registro distinto, entonces necesitas un consulta tipo
SELECT MAX(inicio_session) from session where id_usuario = xx;
Postea un poco de código para ver si se entiende un poco mejor, salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 30/09/2011, 11:13
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Mostrar última visita

Hola repara2...!

Cuento como lo hice con mis muy escasos conocimientos:

Como dije, en mi BD tengo un campo tipo varchar "extra_info" donde guardo la fecha de la "Actual Sesión". Bien, agregué otro campo "anterior_visita" donde copio los datos del campo "extra_info" de esta manera:

En el script de login coloqué este codigo:

Código PHP:
<?php
//datos para establecer la conexion con la base mysql.
include("conexion BD");
//Sentencia para actualizar el campo "anterior_visita"
mysql_query("UPDATE tabla 
SET anterior_visita = extra_info 
WHERE DAY(extra_info) != DAY(CURDATE())" 
);
?>
Cuando el Usuario inicia sesión, se guarda la fecha en el campo "extra_info", ahí el UPDATE no trabaja por coincidencia con la fecha de "hoy", pero cuando vuelva a iniciar Sesión ingresando al scrip de login, se pone a trabajar el UPDATE debido a que NO coincide la fecha y actualiza el campo "anterior_visita".

Aclaro que el UPDATE va a trabajar con cualquier persona que entre al script o página de login!

Luego muestro o imprimo la anterior visita con un "echo" a través de un SELECT del campo "anterior_visita" a la BD y la condición del "id" que lo obtengo de la Sesión.

Funciona, y por ahora no encontré inconvenientes... aunque no se si es la forma más criteriosa o correcta de hacerlo!

Saludos y muchas gracia por ayudarme!
  #4 (permalink)  
Antiguo 02/10/2011, 01:18
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Mostrar última visita

En principio está bien, de todas maneras podrías hacer esos campos de tipo datetime. Cada vez que el usuario se logue lo actualizas con el valor de now() y listo. Al mostrarlo le pones el formato de fecha que túq quieras.
Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 02/10/2011, 09:06
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Mostrar última visita

Si, es correcto lo que dices... sería mejor para esa situación que sean campos datetime!

Yo los tengo como varchar por que la clase que maneja a los usuarios, ya estaba con el campo "extra_info" de tipo varchar debido a que en la "classe" se puede usar también ese campo para información de texto del usuario!

Saludos y muchas gracias!

Etiquetas: mysql, usuarios
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 22:35.