ayuda con mysql (insert into)

gershek

Bovino adicto
#1
que tal, tengo un problema, estoy haciendo una aplicacion php en donde hay un boton de salir, este manda a salir.php y este archivo lo que hace es colocar en la base de datos la hora en que salio el usuario y despues lo manda a la pagina index.php, el problema es que me duplica el registro en la BD. por ejemplo si junito sale a las 5pm voy a tener dos juanios que salieron a las 5pm el codigo es el sig.

Código:
$sqlbitacoras = "INSERT INTO bitacorasm(usuario,hora,accion,fecha) VALUE('$nombre','$hora','Salida','$hoy')";
$queribitacoras = mysql_query($sqlbitacoras)or die(mysql_error()); 
//session_destroy();
header("location: index.php");
espero puedan ayudarme gracias
 
#2
Mal instruccion

Alli lo que estas haciendo es meter datos no actualizarlos, intenta utilizar la instruccion update en vez de insert into, de lo contrario estaras creando nuevos registros, no actualizandolos.

:metal::metal::metal:
 

gershek

Bovino adicto
#3
Es eso lo que quiero, no puedo actualizar un registro si no existe estas de acuerdo, por lo tanto en la tabla de bitacoras debo insertar la hora en que sale el usuario de la aplicación, el problema es que me duplica ese insert automaticamente al momento de direccionar la pagina. si no la direcciono solo se escribe un registro pero pues debo mandar al usuario al index y ya sea que direccione con php, javascript o html, con cualquiera me duplica el registro.
 
#4
Es eso lo que quiero, no puedo actualizar un registro si no existe estas de acuerdo, por lo tanto en la tabla de bitacoras debo insertar la hora en que sale el usuario de la aplicación, el problema es que me duplica ese insert automaticamente al momento de direccionar la pagina. si no la direcciono solo se escribe un registro pero pues debo mandar al usuario al index y ya sea que direccione con php, javascript o html, con cualquiera me duplica el registro.

pues mira mas facil , mas control,
haces un insert en tu tabla, obvio modificas los campos, de la hora de inicio, de sesion , asi el id de ese primer insert lo guardas en una variable de session y al final cuando le den salir haces el update siempre y cuando el id de tu tabla sea igual al id que guardaste en la session

EJ

PHP:
//suponemos que aqui se hace el login del usuario
// tu tabla debe de tener los campos de nombre o id de usuario fecha de inicio y //fecha de salida (mas o menos), entonces

mysql_query("INSERT INTO TuTabla (nombreusuario,iniciodesesion,) VALUES ('juanito',now()) ");

//sacas el ultimo insert 

$lastinsertid = mysql_result(mysql_query("SELECT LAST_INSERT_ID() FROM TuTabla"),0,0);

// aqui declaras la variable de session que guardara el id del insert
$_SESSION['idsessioniniciada'] = $lastinsertid;


///Esto iria en salir.php haras esto

mysql_query("UPDATE TuTabla SET terminodesession = NOW() WHERE id_Tutabla = ".$_SESSION['idsessioniniciada']." ");

echo"<script>location.href='index.php';</script>";
Asi lo haria yo
saludos
 
Arriba