seu problema no final é de lógica e não de php.
Bom, se eu tivesse que ter um controle desse tipo, eu iria mostrar os dados para alteração via um formulário e gravar os mesmo dados no session do usuário. Usaria também uma função em javascript para apenas habilitar o botão de "alterar" quando algum dos valores fosse mudado. Sendo assim, finalmente iria atualizar o registro na tabela original e gravar todos os dados contidos na session(os dados antigos) na tabela "backup".
Espero ter ajudado um pouco.