[英]Creating search by array in laravel using where clause
我創建了一個控制器,該控制器使用sql查詢來搜索包含三種成分的雞肉,洋蔥和大蒜的食譜。 控制器是:
public function searchingbying(request $request){
$dataSet = [];
foreach ($request['ing'] as $ing) {
$dataSet[] = [
$ing,
];
}
$result= DB::select(DB::raw('select recipe_list.recipe_id, recipe_list.Recipe_name, count(*) as ing_count, count(ing_list.ing_id) as ing_match_count from recipe_inglist ri inner join (select Ing_id from ing_list where Ing_list.Ing_name="Chicken" or ing_list.Ing_name="onion" or ing_list.Ing_name="Garlic" ) ing_list on ri.ing_id = ing_list.ing_id right outer join recipe_list on recipe_list.recipe_id = ri.Recipe_id group by recipe_list.recipe_id, recipe_list.Recipe_name having ing_match_count = ing_count'));
}
上面的查詢給出了輸出:
問題是我想允許用戶從復選框中選擇所需數量的配料,並且可以從$ request接收這些復選框的值。 但是我該怎么做才能使sql部分:
where Ing_list.Ing_name="Chicken" or ing_list.Ing_name="onion" or ing_list.Ing_name="Garlic"
一直循環,直到從復選框接收到的所有成分都插入查詢中為止。 就像用戶選擇洋蔥大蒜,番茄和奶酪一樣,查詢的“位置”部分必須為:
where Ing_list.Ing_name="onion" or ing_list.Ing_name="garlic" or ing_list.Ing_name="tomato" or ing_list.Ing_name="cheese"
當選擇洋蔥和大蒜這兩個項目時,$ data的轉儲數據給出:
array(2) { [0]=> array(1) { [0]=> string(5) "onion" } [1]=> array(1) { [0]=> string(6) "Garlic" } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.