Asumiendo que todos los nombres de campo en la tabla son los mismos que los nombres de las entradas de su formulario, esto es sencillo. Puedes usar esto:
$query = "UPDATE product SET";
$comma = " ";
foreach($_POST as $key => $val) {
if( ! empty($val)) {
$query .= $comma . $key . " = '" . mysql_real_escape_string(trim($val)) . "'";
$comma = ", ";
}
}
$sql = mysql_query($query);
Para estar más seguro, debe crear una lista blanca de parámetros aceptados, es decir, las columnas en su tabla como esta:
$query = "UPDATE product SET";
$comma = " ";
$whitelist = array(
'title',
'rating',
'season',
'brand_id',
'cateogry',
// ...etc
);
foreach($_POST as $key => $val) {
if( ! empty($val) && in_array($key, $whitelist)) {
$query .= $comma . $key . " = '" . mysql_real_escape_string(trim($val)) . "'";
$comma = ", ";
}
}
$sql = mysql_query($query);
De esa manera, su consulta solo puede contener parámetros que usted establezca, y si alguien logra inyectar extras (al cambiar los nombres de las entradas de su formulario, por ejemplo), no se pasará a su base de datos.
También te recomiendo que dejes de usar Mysql_* , está obsoleto . Debería consultar MySQLi o PDO como alternativas.