Your query, formatted a bit better:

Code:
INSERT INTO
 jos_reg_term_1 (
  id,
  familyid,
  childfirstname,
  childlastname,
  knownas,
  fathername,
  mothername,
  sunday,
  monday,
  tuesday,
  wednesday,
  thursday,
  class
 ) VALUES (
  '',
  '" . $id . ',
  ' . $familyid . ',
  ' . $childfirstname . ',
  ' . $childlastname . ',
  ' . $knownas . ',
  ' . fathername . ',
  ' . $ mothername . ',
  ' . $mothername . ',
  ' . $sunday . ',
  ' . $monday . ',
  ' . $tuesday . ',
  ' . $wednesday . ',
  ' . $thursday . ',
  ' . $class . "'
 )";
You are mixing quote styles (what are the double quotes for?), not including single quotes around your text values where you need to, and have that extra empty string in there before id. There is no $ before fathername, mothername is in there twice, once with an extra space which will cause it to error.

A simple check of the column names against the values you are inserting will have picked these up, php should have reported some of those errors anyway, and echoing out your generated SQL string ($sql) should reveal the problems with the query itself.