Originariamente inviato da nICO80
Sinceramente non capisco perchè la cosa dovrebbe essere ricorsiva...
Alla fine visualizzare una sottocategoria è la stessa cosa di visualizzare una sottosottocategoria o una sottosottosotto.....sottocategoria

nel senso che devi fare sempre lo stesso tipo e lo stesso numero di query.
Mi spiego meglio:
Tabella categorie
codice:
ID | Parent | Nome |
1 0 Stampanti
2 0 Scanner
3 1 HP (sottocat di stampanti)
4 3 Laser (sottocat. di HP)
5 3 Inkjet (sottocat di HP)
6 1 Canon (sottocat di stampanti)
7 2 HP (sottocat di scanner)
Tabella prodotti
codice:
ID | Categoria | Modello | .... ....
1 3 x
2 4 y
3 3 z
....
Quindi tu avrai 2 query x pagina:
1) SELECT * FROM categorie WHERE Parent = ....
dove al posto dei puntini metti 0 se vuoi vedere le categorie principali oppure l'ID della categoria che stai guardando se vuoi vedere le sottocategorie o l'ID di una sottocategoria se vuoi vedere le sue sotto-sottocategorie e così via.
Ad es. se metti 1 (stampanti) ottieni come risultati HP e Canon
2) SELECT * FROM prodotti WHERE Categoria = ....
dove al posto dei puntini metti l'ID della categoria di cui vuoi vedere i prodotti.
Non so se ho capito male quello che vuoi fare, ma a me questo non sembra particolarmente pesante.