L'errore standard, in questi casi, è sempre nella query di modifica
al volo mi sembra che siano errori nell'uso delle virgolette, quindi sostituisci così$query="update veicoli set marca=\"$marca\","."modello=\"$modello.\","."km=\" $km.\","."categoria=\"$cat.\","."pz=\"$pz.\","."an no=\"$anno.\","."optional=\"$opt.\","."ft1=\"$ft1. \","."ft2=\"$ft2.\","."ft3=\"$ft3.\","."ft4=\"$ft4 .\","."where id=$id";
$query = "UPDATE veicoli SET marca='$marca', modello='$modello' ..... e così via fino a .... WHERE id='$id'";