Bonjour,
Pas besoin de deux requêtes, une seule requête avec un SUM() sur tes prix et quantité et un GROUP BY pour regrouper le tout par catégorie (id & libellé) devrait fonctionner
Je ne connais pas la librairie JFactory que tu utilises pour faire ta requête, ni ce qu'elle apporte, mais ça m'a l'air drôlement compliqué pour faire un simple select... en version SQL il faudrait simplement exécuter :
SELECT fab_booking.id, fab_catering_categories.categories, SUM(fab_booking_44_repeat.nombre_art), SUM(fab_booking_44_repeat.prix_ttc)
FROM fab_booking
LEFT JOIN fab_booking_44_repeat ON fab_booking.id = fab_booking_44_repeat.parent_id
LEFT JOIN fab_catering_categories ON fab_booking_44_repeat.categorie = fab_catering_categories.id
WHERE fab_booking.id = ??
GROUP BY fab_booking.id, fab_catering_categories.categories
A noter que la jointure avec la table fab_booking n'est même pas nécessaire puisque ton id booking est une constante soumise dans le WHERE...
SELECT fab_booking_44_repeat.parent_id, fab_catering_categories.categories, SUM(fab_booking_44_repeat.nombre_art), SUM(fab_booking_44_repeat.prix_ttc)
FROM fab_booking_44_repeat
LEFT JOIN fab_catering_categories ON fab_booking_44_repeat.categorie = fab_catering_categories.id
WHERE fab_booking_44_repeat.parent_id = ??
GROUP BY fab_booking_44_repeat.parent_id, fab_catering_categories.categories
Edit : Et avec quelques alias pour faciliter la lecture...
SELECT rep.parent_id, cat.categories, SUM(rep.nombre_art), SUM(rep.prix_ttc)
FROM fab_booking_44_repeat rep
LEFT JOIN fab_catering_categories cat ON rep.categorie = cat.id
WHERE rep.parent_id = ??
GROUP BY rep.parent_id, cat.categories