Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2004, 02:05
DOC_T
 
Fecha de Ingreso: abril-2004
Mensajes: 6
Antigüedad: 20 años
Puntos: 0
Insercion erronea

Hola a todos!

He buscado en el foro y he encontrado un tema parecido pero no lo he conseguido solucionar, se trata de una inserción en mysql utilizando db_mysql.inc un tanto extraña, estoy haciendo una web en la que cada vez que un usuario inicia en el sistema es registrado en la base de datos, según su ip, fecha, etc., el problema viene porque a veces me hace una inserción duplicada, pero sin embargo solo se ejecuta una vez la orden de insercion porque lo he comprobao con echos, no se que puede fallar , ademas a veces inserta doble y otras no, no he conseguido determinar cuando pasa , el codigo es el siguiente:

$sql= "select count(id)'c_id' from ". $this->nombreTabla ." where usuario = ".$this->id_usuario." and inicio_correcto = -1 and fecha > '".$this->fecha_ant ."'";
$this->query($sql);
if (!$this->next_record()) return -1;

GLOBAL $INTENTOS;

if( ($this->f("c_id")) >= ($INTENTOS-1))
{
// es necesario el bloqueo de la cuenta
$usuario = new Usuario();
$usuario->setId($this->id_usuario);
$usuario->bloqueaUsuario();
}

if ((isset($this->id_usuario)) && ($this->id_usuario >= 0) && (isset($this->fecha)))
{
$this->query("INSERT INTO ". $this->nombreTabla ." (id, usuario, fecha, host, inicio_correcto) VALUES (NULL, ". $this->id_usuario .", '". $this->fecha ."', '". $this->ip ."', -1)");
}
else
{
$ret = -1;
$this->error = "Valores incorrectos para la inserción de la sesión";
}
return $ret;


espero q con ese trozo de codigo sea suficiente, la funcion bloquea usuario de la clase usuario no realiza ninguna insercion, cualquier ayuda sera bien recibida , muchas gracias por adelantado