Foros del Web » Programando para Internet » PHP »

consulta update problema

Estas en el tema de consulta update problema en el foro de PHP en Foros del Web. hola tengo un problema ,estoy haciendo una consulta que actualice un registro en concreto de la base de datos ,el problema es que me actualiza ...
  #1 (permalink)  
Antiguo 11/04/2010, 06:54
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 1 mes
Puntos: 0
consulta update problema

hola tengo un problema ,estoy haciendo una consulta que actualice un registro en concreto de la base de datos ,el problema es que me actualiza todos, quiero que el usuario al cerrar la sesion actualice el registro de su sesion con la fecha en que ha cerrado dicha sesion pero en realidad me actualiza la fecha de cierre de sesion de todos los registros, se que necesito compararlo con algo mas que el nombre de usuario de la sesion, pero no se que hacer mas, creo que debería tener un id propio de cada sesion o algo asi,me podeis ayudar


<?php
session_start();
session_destroy();
include 'conectar.php';
$date = date("Y-m-d H:i:s");
$query="SELECT FROM historial WHERE usuariodesesion= '$_POST[usuario]' AND numerodesesion= '$numerosesion'";
mysql_db_query("basedatos",$query);
$query2="UPDATE historial SET fechacierresesion= '$date' ";
mysql_db_query("discosrko",$query2);
$query;
$query2;
?>
<html>
<head>
<title>Logout</title>
</head>
<body background="images/background.gif">
</body>
<SCRIPT LANGUAGE="javascript">
alert("Usted ha cerrado la sesión, esperamos volver a verle de de nuevo.");
location.href = "index.php";
</SCRIPT>
</html>
  #2 (permalink)  
Antiguo 11/04/2010, 07:32
 
Fecha de Ingreso: marzo-2010
Ubicación: Córdoba, Argentina
Mensajes: 21
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: consulta update problema

Le falta la clausula WHERE al UPDATE. O sea, el UPDATE esta bien, pero tenes que ponerle WHERE a = b

Es decir, 'UPDATE historial SET fechacierresesion= '$date' WHERE usuario = '$usuario'";

Tu tabla debería tener una columna donde aparezca el ID del usuario que está cerrando la sesión.
  #3 (permalink)  
Antiguo 11/04/2010, 08:05
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: consulta update problema

la tabla del historial tiene numerodesesion, usuariodesesion, fechainiciosesion y fecha cierre de sesion. el problema es que se cambiarian todas los registros de ese usuario y no el de esa sesion, voy a probarlo pero creo que ocurrira eso, gracias
  #4 (permalink)  
Antiguo 13/04/2010, 04:50
 
Fecha de Ingreso: marzo-2010
Ubicación: Córdoba, Argentina
Mensajes: 21
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: consulta update problema

Cita:
Iniciado por dani12345 Ver Mensaje
la tabla del historial tiene numerodesesion, usuariodesesion, fechainiciosesion y fecha cierre de sesion. el problema es que se cambiarian todas los registros de ese usuario y no el de esa sesion, voy a probarlo pero creo que ocurrira eso, gracias
Y si, la verdad es que es muy probable. Entonces deberias hacer un doble WHERE. Osea, "WHERE usuario = '$usuario' AND sesion = '$sesion';
  #5 (permalink)  
Antiguo 13/04/2010, 12:39
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 1 mes
Puntos: 0
voy a probar como dices,porque lo probe la otra vez y efectivamente se actualizaban todos los cierre de sesion del mismo usuario, ojala funcione como dices, lo que pasa es que el codigo de sesion yo no lo especifico es automatico y autoincremental,voy a ver,gracias

como va siempre aumentando a mas el numero de sesion habia pensado en esto, que te parece:

<?php
session_start();
include 'conectar.php';
$date = date("Y-m-d H:i:s");
$query="SELECT numerodesesion FROM historial WHERE usuariodesesion='$_SESSION[usuario]'";
$result=mysql_db_query("discosrko",$query);
$MAX=mysql_fetch_array($result);
$query2="UPDATE historial SET fechacierresesion='$date' WHERE usuariodesesion='$_SESSION[usuario]' AND numerodesesion='$MAX[numerodesesion]'";
mysql_db_query("discosrko",$query2);
session_destroy();
?>

finalmente he conseguido lo que quería ,ese es el codigo modificado y funciona correctamente

Última edición por dani12345; 14/04/2010 a las 10:14

Etiquetas: update
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 15:54.