En la tabla de usuarios de mi BD tengo dos campos: Ult_Visita y Actual.
Esto me sirve para indicar cuando fue la última visita del usuario y se muestra cuando se logea.
Si es su primera visita, ambos campos serán nulos, actualizo el registro dándole a Actual el valor de now()
Y le informo de que es su primera visita (en ese momento el campo Ult_Visita es null)
Si no es su primera visita el campo actual ya tiene una fecha y hora dadas, (compruebo si Actual está vacío o no)
Al logearse, la fecha que estaba en Actual pasa a Ult_Visita y le actualizo de nuevo el campo Actual dándole now()
Es un método sencillo y fiable, cuando se loguea le muestro el campo Ult_Visita.
El problema me viene cuando quiero actualizar la Ult_Visita pasándole el valor que contiene el campo Actual.
He usado varios métodos diferentes pero lo que suelo conseguir es que me actualice Ult_Visita con esto: 00-00-0000 00:00:00
Os pongo ejemplos de códigos que he usado y ninguno me da resultado:
Código PHP:
//Nos logeamos
$sql = mysql_query("Select * From Usuarios where User='$user' and Pass='$pass'");
if ($row = mysql_fetch_array ($sql))
{
//Miramos si es su primera visita
if($row["Actual"]=="")
{
$sql2 = "UPDATE Usuarios SET Actual=now() where User='".$row["User"]."'";
}else{
//Si salta aquí es que no es su primera visita
$sql2 = "UPDATE Usuarios SET Ult_Visita='".$row["Actual"]."' and Actual=now() where User='".$row["User"]."'";
}
if (!mysql_query($sql2))
{
die('Error: ' . mysql_error());
}
}else{
//Código que saco en caso de que no se haya logeado correctamente
}
Código PHP:
//Nos logeamos
$sql = mysql_query("Select * From Usuarios where User='$user' and Pass='$pass'");
if ($row = mysql_fetch_array ($sql))
{
//Miramos si es su primera visita
if($row["Actual"]=="")
{
$sql2 = "UPDATE Usuarios SET Actual=now() where User='".$row["User"]."'";
}else{
//Si salta aquí es que no es su primera visita
$sql2 = "UPDATE Usuarios SET Ult_Visita=".obtener_fecha($row["Actual"])." and Actual=now() where User='".$row["User"]."'";
}
if (!mysql_query($sql2))
{
die('Error: ' . mysql_error());
}
}else{
//Código que saco en caso de que no se haya logeado correctamente
}
//Funcion mktime
function obtener_fecha($fecha)
{
$f=explode("-",$fecha);
$dia=explode(" ",$f[2]);
$h=explode(":",$dia[1]);
$fecha=mktime($h[0], $h[1], $h[2], $f[1], $dia[0], $f[0]);
return $fecha;
}
Alguien tiene una solución en mente?
Un saludo a todos y gracias