@nico80:

c'è un problema di fondo, a parte l'errore della query che non avevo visto ...

$Qs = $_SERVER['QUERY_STRING']; //querystring categoria

questo non restituisce un array, bensi una stringa, che lui usa come array ... ora immagino tenga il reporting dei notice spento altrimenti lo avviserebbe ... deve usare $_GET, in questo caso

inoltre tenere il nome è importante in molte situazioni, infatti quando costruisci un sistema di url "human-readable" capita che non hai a disposibione l'id nella query string e quindi devi andare con i nomi ... ma comunque permane quel problema di fondo