Firehalk... isso ele consegue fazer... a dúvida é quando ele atualiza...
Mas vamos lá...
Não seria só ver as que vieram e aí deduzir que as que não vieram é 0 e assim apenas fazer o update ?

Então Crab, mas o problema é que eu tenho a seguinte estrutura:
uma tabela de questionarios;
uma tabela das sessoes de todos os questionarios;
uma tabela das perguntas de todas as sessoes e
uma tabela das opções de todas as perguntas.
Quando o administrador vai editar as opções e perguntas, ele seleciona primeiro um questionario e em seguida uma sessão desse questionário.
Ao atualizar as opções e perguntas dessa sessão eu não posso alterar as opções e perguntas das outras sessões e dos outros questionários.
Assim, eu não posso atualizar como 0 tudo o que não veio do formulário.
Eu só posso atualizar as opções e perguntas da sessão que foi apresentada no formulário.
Quando eu tenho o valor dos checkbox, eu uso um foreach para fazer o update somente das opções e perguntas da sessão com o seccod que foi selecionado.
Eu precisaria inicialmente filtrar todas as opções e perguntas somente da sessão selecionada; depois atualizar os registros para os quais eu tenho os valores do formulário; por fim atualizar o resto dessa filtragem como 0.
Agora escrevendo isso me deu a idéia de usar um while para rodar todas as opções da sessao e verificar para cada ocorrencia se há o valor vindo do formulário. Se houver atualiza com o valor se não atualiza com 0.
Vou tentar, depois aviso se deu certo.
Valeu.