Il problema è che l'ordine delle category si trova su un file esterno al database e contiene il nome delle categorie in ordine di visualizzazione,che non è detto sia quello alfabetico,quindi credo che l'order by dell'indice category non sia corretto.
Tuttavia se ordino tramite query la posizione dopo non c'è un modo per stampare prima una category poi un'altra e così via? Riesco infine ad ottenere di nuovo un array da codificare con json_encode e da spedire ad ajax?