recipe db devam ediyor ...
categories
cid | category_name
1 | desserts
2 | cakes
3 | biscuits
recipes
id | recipe_name
1 | black forest cake
2 | angel cake
3 | melting moments
4 | croquembouche
5 | crepes suzette
ingredients
iid | ingredient_code | ingredient_name | ingredient_brand
1 | abc201 | self-raising flour | white wings
2 | abc202 | milk | pura
3 | abc203 | chocolate | plaistock
4 | abc204 | baking powder | mackenzie
5 | abc205 | plain flour | white wings
6 | abc206 | eggs | free range
recipe_categories
recipe_id | category_id
1 | 1
4 | 1
5 | 1
1 | 2
2 | 2
3 | 3
4 | 3
recipe_ingredients
recipe_id | ingredient_id
1 | 1
2 | 1
4 | 1
1 | 2
2 | 2
3 | 2
5 | 2
1 | 3
2 | 3
1 | 4
3 | 5
4 | 5
Ozatomic önerdiği gibi, ben aşağıdaki sorguyu kullanarak ediyorum:
SELECT A.recipe_name, GROUP_CONCAT(ingredient_name) AS ingredient_names
FROM recipes A
LEFT JOIN recipe_ingredients B ON A.id = B.recipe_id
LEFT JOIN ingredients C ON B.ingredient_id = C.iid
LEFT JOIN recipe_categories D ON A.id = D.recipe_id
LEFT JOIN categories E ON D.category_id = E.cid
WHERE category_id = <search_id>
GROUP BY id
Sorun ben ben şu hala (web outputted gerekir gibi maddeler listesine GROUP_CONCAT kullanmak mümkün olduğum anlamına gelecek böyle ingredient_code ve ingredient_brand gibi maddeler tablodaki ek alanlar, ihtiyaç gidiyorum fark ettik, bir kategoriye göre):
black forest cake:
abc201 white wings self-raising flour
abc202 pura milk
abc203 plaistock chocolate
croquembouche:
abc201 white wings self-raising flour
abc204 white wings plain flour
crepes suzette:
abc202 pura milk
abc205 white wings plain flour
abc206 free range eggs
Ben de bunu başarmak için iki sorgu kullanabilirsiniz, ya da bir foreach döngü kullanmak zorunda gidiyorum duygu olsun. Iyi olurdu ve onu nasıl hakkında gitmek hangisi?
MTIA!
edit: Ben de html etiketleri kullanarak veya divlere veya herneyse koyarak, sonuçlarını biçimlendirmek gerekiyor.