por todas las variables que usas no entiendo tu query de SQL asi que generalice uno, haber si te funciona.
si cuando quieres hacer el |update este campo ya ya tiene 2 te va a mandar un error de MySQL el cual puedes configurar a tus necesidades.
aunque te dire que tu problema no no me queda claro, es basicamente lo que entendi.
Código PHP:
$SQL="UPDATE tabla SET campo = ".$variable." WHERE ID = ". $ID." AND otrocampo <> 2";
$conex = mysql_connect("localhost","user","password") or die ("no se pudo conectar???");
mysql_select_db("basededatos", $conex);
$resultado = mysql_query($SQL,$conex);
if ($resultado !=1){
echo "mensaje de error";
}
Suerte