firstly, your structure.
yep, it needs changing but it's not urgent. The "right" way would be to have a table with
studentid, choicetype, choicevalue
that way you can extend or restrict the range without causing yourself grief. If the student doesn't select anything, you don't insert into the table. The only time you'd end up with a 0 is if the student later chose not to have that option.
Regardless of whether you want to change your structure you need to get smarter code.
If a check box is unselected no value will be sent by the browser
$sql1 = "insert into mytable (id,";
$sql2 = " values ( null, ";
$sql1 .= "option1,"
if (isset($check1))
$sql2 .= "1, ";
else
$sql2 .= "0, ";
// process all the check boxes in the same way - you can make this smarter but this is readable and works
// finally remove the last comma and append the closing ) and put the 2 strings together and send to the database.
If you change your structure you would be building up a series of insert statements and sending to the database in one big hit.
Good luck