Jag har två tabeller jag vill söka i. tbl_recipes och tbl_recipes_ingredient.
tbl_recipes har två kolumner, recipe_name och recipe_info.
tbl_recipe_ingredient har en kolumn jag vill söka i, ingredient_name, men det kan finnas mer än 1 rad, beroende på hur många ingredienser receptet har.
Finns det något smidigt sätt att söka i tbl_recipe_ingredient? Så här ser det ut nu:
select
r.recipe_id,
r.recipe_name,
r.recipe_info
from
tbl_recipe r
left join
tbl_recipe_ingredient i on i.recipe_id = r.recipe_id
where
r.recipe_info like '%' :search_query '%' or
r.recipe_name like '%' :search_query '%'
Men jag får inte ihop sökningen till tbl_recipe_ingredient.
Okej, det där var löjligt, måste ha skrivit fel någonstans, tack! :)
En följdfråga: Jag har recepten uppdelade i kategorier, som ligger i recipe_category, hur gör jag om jag endast vill söka i kategorier jag väljer via checkboxar?
select
r.recipe_id,
r.recipe_name,
r.recipe_info
from
tbl_recipe r
left join
tbl_recipe_ingredient i on i.recipe_id = r.recipe_id
left join
tbl_recipe_category c on c.recipe_id = r.recipe_id
where
r.recipe_info like '%' :search_query '%' or
r.recipe_name like '%' :search_query '%' or
i.ingredient_name like '%' :search_query '%' and
c.category_id = :category_id
I.o.m. att du kan få flera värden från checkboxarna skulle du kunna skapa en kommaseparerad lista och stoppa i :category_ids. Sedan:
select
r.recipe_id,
r.recipe_name,
r.recipe_info
from
tbl_recipe r
left join
tbl_recipe_ingredient i on i.recipe_id = r.recipe_id
left join
tbl_recipe_category c on c.recipe_id = r.recipe_id
where
(r.recipe_info like '%' :search_query '%' or
r.recipe_name like '%' :search_query '%' or
i.ingredient_name like '%' :search_query '%') and
c.category_id in (:category_ids)