Si une case n'est pas cochée, elle n'est pas envoyée, donc définir sa valeur sur 0 si elle n'est pas cochée ne va pas aider - elle renverra toujours NULL.
Il existe deux façons de résoudre ce problème facilement :
1) Supposons qu'un NULL dans les paramètres PHP signifie que la case n'est pas cochée. Si la case à cocher n'existe pas toujours sur la page, cela pourrait être problématique. À première vue, il y a un nombre variable de cases à cocher, donc cela ne fonctionnera probablement pas.
2) Ajoutez une entrée masquée qui porte le même nom que la case à cocher avec la valeur 0 AVANT la case à cocher. Si la case n'est pas cochée, la valeur du champ masqué sera utilisée, si elle est cochée, la valeur de la case sera utilisée.
<input type="hidden" name="checkbox_1" value="0">
<input type="checkbox" name="checkbox_1" value="1">
Remarque :Si vos noms sont sous forme de tableau (c'est-à-dire qu'ils contiennent des crochets), cela ne fonctionnera pas, car les champs masqués incrémenteront également le nombre de tableaux.