It seems to me that what is happing is in the first if statement, you are updating questionthree to '1'. then the code moves to the next if statement. there, if the user didn't answer a question, you output the error message, but if they DID answer the question (just like in the first if) this time you set questionthree to '0'.
Basically, no matter what, if the user answers a question, questionthree is set to '0'.
the remedy? change the second 'if' statement to 'else if', so it looks like this:
$numone=1;
$numtwo=0;
if (($calc9 == "answer9") && ($calc6 =="") && ($calc7 =="")
&& ($calc8 =="") && ($calc10 ==""))
{
mysql_query("UPDATE demo set questionthree = $numone WHERE id = $session3[id]");
}
else if (($calc6 =="") && ($calc7 =="") && ($calc8 =="") && ($calc9 =="") && ($calc10 =="")) {
$message3 .="You forgot to answer a question! Please resubmit your answers.";
}
else
{
mysql_query("UPDATE demo set questionthree = $numtwo WHERE id = $session3[id]");
}