Your $id is no good; it shows as empty in this query. You are successfully updating no records (unless you have records that are an empty string). On the plus side it means your syntax is good.
Why are so many of these entries empty? If you have empty/nullable datatypes in your structure, that (usually) indicates that the structure isn't normalized. You'll need to look into SQL injection as well; you can walk the post data through a stripslashes (if necessary) and a mysql_real_escape_string, or look at using prepared statements and binding them.