sicuro che nella riga

$query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster WHERE id='$id'";

il campo ID sia un campo stringa? se fosse nuemrico come si suppone semrpe per gli ID gli apici non devono esserci..

$query = "SELECT id, macchina, tipo, intro, caratteristiche, optionals, img, pdf FROM it_roster WHERE id=$id";