Si una casilla de verificación no está marcada, no se envía, por lo que establecer su valor en 0 si no está marcada no ayudará, siempre devolverá NULL.
Hay dos formas de arreglar esto fácilmente:
1) Suponga que un NULL en los parámetros de PHP significa que la casilla de verificación no está marcada. Si la casilla de verificación no siempre existe en la página, esto podría ser problemático. Por lo que parece, hay un número variable de casillas de verificación, por lo que probablemente esto no funcione.
2) Agregue una entrada oculta que tenga el mismo nombre que la casilla de verificación con el valor de 0 ANTES la casilla de verificación Si la casilla de verificación no está marcada, se usará el valor del campo oculto, si está marcada, se usará el valor de la casilla de verificación.
<input type="hidden" name="checkbox_1" value="0">
<input type="checkbox" name="checkbox_1" value="1">
Nota:si sus nombres están en forma de matriz (es decir, tienen corchetes), esto no funcionará, ya que los campos ocultos también incrementarán el conteo de la matriz.