Buen dìa a todos, me está ocurriendo algo que nunca me había pasado. Hago una consulta SELECT a la BD en mysql y me devuelve el valor correcto del campo, luego actualizo ese campo con otra consulta UPDATE y cuando vuelvo a consultar el mismo campo con la misma primera consulta SELECT en vez de mostrarme el nuevo dato me sigue mostrando el anterior, a pesar que en phpMyAdmin yo puedo comprobar que se actualizó el campo por el nuevo dato. Ya intenté utilizando SQL_NO_CACHE luego del SELECT, leí en otro sitio que al actualizar una tabla se borran todas las consultas alojadas en caché por lo cual actualicé un campo X de la tabla antes del SELECT pero tampoco funciona.
Este es el código que estoy utilizando:
Código PHP:
<?php
function GetLluvia($mysqli, $user)
{
$sql = "SELECT SQL_NO_CACHE Lluvia FROM usuarios WHERE ID={$user}";
$result = $mysqli->query($sql) or die(mysqli_error());
$numrows = $result->num_rows;
if ($numrows > 0)
{
$row = $result->fetch_assoc();
return $row['Lluvia'];
}
}
function GuardarLluvia($mysqli, $user,$svlluvia)
{
$sql = "UPDATE usuarios SET Lluvia = '{$svlluvia}' WHERE ID={$user}";
$result = $mysqli->query($sql) or die(mysqli_error());
if (!$result)
{
echo "No se actualizo";
}
}
$dblluvia=GetLluvia($mysqli,"1");
$gtlluvia=$_GET['lluvia'];
if ($dblluvia != $gtlluvia)
{
if ($gtlluvia=='1')
{
$text = "Ha comenzado a llover.";
GuardarLluvia($mysqli, $user,'1');
}
else
{
$text = "Ha dejado de llover.";
GuardarLluvia($mysqli, $user,'0');
}
}
?>
Se supone que si por la url se envía la variable lluvia y esta es diferente a la que está almacenada en la BD, debe actualizar el campo en la BD colocando el nuevo valor que llegó por GET y mostrar el mensaje correspondiente, el problema es que la siguiente vez que llega un dato por GET y consulta la BD, en vez de mostrar el nuevo dato sigue mostrando el anterior. No se si sea problema de programaciòn o de mysql por eso lo coloco aquí, si no es el sitio adecuado agradezco lo cambien al foro correspondiente.
Agradezco cualquier ayuda.