A ver te explico:
Al crear la cosa funciona, lo que hago es comprobar si el valor de horas que introduce el usuario es mayor que las que quedan por asignar (las que quedan por asignar las calculo sumando todas las materias que están en ese área y restándoselo al número total de horas del área).
Pero al editar la materia lo que falla es que aquí el usuario puede cambiar también el área a la que pertenece esa materia, entonces el número total de horas del área también cambia, y eso no lo controlo (porque no sé como controlarlo), yo hasta ahora el número total de horas del área a repartir entre las materias lo consultada en la BD, y lo almacenaba en estos 2 valores (salen en el primer mensaje):
Código PHP:
$nHorasSemanalesTotales=$fila1['horasSemanalesArea']; //Aqui tengo el total de las horas semanales del area
$nHorasTotales=$fila1['horasArea']; //Aqui tengo el total de las horas totales del area
Ahora voy a explicar las horas semanales (las totales sería idéntico):
Bien, en estas 2 variables tengo las horas totales del área a repartir entre las materias (horas totales del área a repartir entre horas totales de materias y horas semanales a repartir entre horas semanales de materias), y en las variable:
Código PHP:
$diferenciaSemanales=$nHorasSemanalesTotales-$sumaHorasSemanales+$fila['horasSemanalesMateria'];
echo'<input name="diferenciaSemanales" type="hidden" value="'.$diferenciaSemanales.'">';
$diferenciaSemanales tengo el valor que, como máximo puede alcanzar la materia que estamos editando, pues es la diferencia entre $nHorasSemanalesTotales (horas totales del área a repartir entre todas las materias) y $sumaHorasSemanales (suma de todas las materias que pertenecen a ese área) más $fila['horasSemanalesMateria'] (horas de la materia que estamos editando, que como se la hemos restado porque su valor iba incluido en $sumaHorasSemanales se lo tenemos que sumar).
Después lo que hago es asignarle el valor a un campo oculto para poder acceder a él desde javascript.
Pero el problema realmente es el de arriba, controlar que al cambiar el área se cambien las horas totales del área a repartir y la suma de las materias que pertenecen a ese área.
¿queda más claro?