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.