if( $old_value1 != $new_value1 ) blah...
do it for all the variables.
however that would be the assbackwards way to do it, because you can just turn mysql loggin on and it will do it all for you.
as for the user who changed it... if you want that information it should be in the record itself!
i usually add changed_id, changed_time, changed_machine columns to my tables, and put in the persons id, a timestamp, and their IP address during every update.
then in the mysql log you could see all the updates being made.