Bonsoir TheMancunien,
Tu as plusieurs solutions : la première c'est de garder ta requête telle-quelle mais de gérer les ruptures de catégories dans la boucle foreach.
Il y a eu un fil, il y a quelques jours qui utilisait cette technique.
l'autre solution c'est d'utiliser l'instruction GROUP_CONCAT() dans ta requête, de façon à concaténer toutes les catégories d'un article dans une chaine.
dans ce cas tu devras explode ta chaine pour en sortir un tableau de catégories , puis un foreach pour générer les badges.


