Ver Mensaje Individual
  #29 (permalink)  
Antiguo 05/09/2003, 14:21
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Cita:
Bien, creo que un UPDATE no se resuelve el problema del error, por que estas bloqueando algo que tienes que saber si se está usando, sino llega uno y hace el UPDATE pero ese registro alguien lo puede estar modificando ya.
Si te refieres el UPDATE para poner a 1 el flag, si haces:
Código PHP:
mysql_query("UPDATE tabla SET flag=1 WHERE id='$id' and flag<>1"$link);
if (
0==mysql_affected_rows($link)) {
  
// ya valia 1, estaba bloqueado
  
echo "El registro esta siendo editado por otro individuo. Vayase a tomar cafe";
} else {
  
// no valia 1, lo has puesto a 1 para bloquearlo
  
echo "Edite el registro";

Asi puedes hacer el UPDATE y la comprobacion de una forma atomica.

El merito no es mio, es una de las cosas que comentan al final de la pagina que di antes http://www.mysql.com/doc/en/ANSI_diff_Transactions.html

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.