The problem is with your logic; you don't want logical OR, you'd want logical AND.
It might be easier, however, to use [man]in_array/man like so:
$exclude = array("month", "day", "year", "etc.");
foreach ($_POST as $field=>$value) {
if(!in_array($field, $exclude)) {
// process field
}
}
Also, a minor security warning: with the code you have above, you're allowing anyone who has access to this script to change any column in the table. In addition, your code is vulnerable to SQL injection attacks. User-supplied data should never be placed directly into a SQL query. Instead, it should first be sanitized with a function such as [man]mysql_real_escape_string/man (assuming you're using the MySQL DBMS).