hai risolto, ma giusto per mettere un po' d'ordine...
codice:
mysql_query("UPDATE $table SET $campi WHERE id='$id'");
codice:
mysql_query("UPDATE $table SET $campi WHERE id=1");
il secondo funziona perchè evidentemente l'id è un numero... quella sopra no perchè hai trattato l'id come una stringa (gli apici singoli si usano in una query dopo l'uguale per dire di cercare la stringa.
per lo stesso motico non funziona neanche
codice:
mysql_query("UPDATE $table SET $campi WHERE id='" . $id . "' ");
visto che tratti sempre l'id come stringa
codice:
mysql_query("UPDATE $table SET $campi WHERE id = " . $id . "");
funziona perchè hai tolto gli apici singoli e quindi tratti id come un numero.
un suggerimento: se la stringa (in questoc aso la query) la apri con gli apici doppi, non servi che concateni la variabile (come hai fatto con $table e $campi), quindi tutto funzionava anche semplicemente così:
codice:
mysql_query("UPDATE $table SET $campi WHERE id =$id");