Beh.... questo codice me lo devi proprio spiegare!
La prima cosa che mi viene in mente di dirti è: cosa ci fai con il session_start, se non usi le sessioni??

Poi.... cosa ci fai con due query di select???
Peraltro, le colonne che usi come riferimento nelle due clausole di WHERE delle due query (attiva, idcategoria), sono definite come INT?
Se sì, hai anche l'errore di passare dati in formato stringa.
Sono proprio necessarie le due query???
Come sono strutturate le due tabelle???
Secondo me, c'è proprio un errore di fondo nella struttura del DB: penso che o potresti risolvere con una sola tabella, oppure con una query di JOIN.
Fatto sta, che dubito che un codice come quello che hai postato te, possa funzionare senza problemi!