Muchas gracias, pero la verdad, ahora mismo no veo si eso me soluciona el problema, veo que hay algo en lo que no me he expresado bien, a ver, cuando dices que:
"Teniendo este planteamiento, lo que pretendemos es editar una Materia diciendo: Si materia4 pertenece a areaB, quiero que materia4 pertenezca a areaC. Con lo cual tengo que restarle a areaB de su cantidad de horasSemanales y de su cantidad de horasTotales las correspondientes a materia4, y esas mismas cantidades de hora sumarselas a areaC."
No es eso, las horas totales son siempre las mismas y están guardadas con el área, no tenemos que restarles ni sumarles nada a un área si decidimos cambiar la materia de un área a otra, simplemente tenemos que volver a calcular cuántas horas quedan libres en el área nuevo para ver cuántas les podemos asignar a esa materia nueva, es deicr, no se guarda en ningún sitio las 'horas disponibles' de un área, sino que siempre están guardadas las 'horas totales' del área, y, a partir de ahí calculamos sumando todas las materias que están en ese momento en ese área para ver cuántas horas quedan libres. Espero haberme explicado mejor, si no es así, házmelo saber.
Aunque viendo tu código se me ha ocurrido 1 idea que no sé llevar a cabo: a ver, aqui la dificultad que hay es que el usuario puede cambiar de área, y lo hace mediante un select:
Código PHP:
echo'
   Área:
<select name="cNArea">
<option value='.$fila['nArea'].'>'.$fila1['nombreArea'].'</option>';
while ($fila2= mysql_fetch_assoc($result2)){
if ($fila2['nArea']!=$fila['nArea'])
echo '<option value='.$fila2['nArea'].'>'.$fila2['nombreArea'].'</option>';
}
echo '</select>';
Por tanto, se me ocurre que una solución podría ser que con un evento onChange() en el select (es decir cada vez que el usuario modifique el área) tendríamos que pasarle el número de horas totales y el número de horas semanales de ese área, y eso es lo que no sé cómo se hace, ni siquiera sé si se puede hacer, porque creo que habría que hacer una consulta, y recoger los valores y pasárselos cada vez que el usuario cambie el área, ¿entiendes?
Muchas gracias, saludos