gpt4 book ai didi

php - 如何在 codeigniter 中搜索多个单词?

转载 作者:行者123 更新时间:2023-11-28 23:38:33 26 4
gpt4 key购买 nike

我有 3 个表,成分(ingredient_id,名称),菜单(recipe_id,ingredient_id,category_id)和食谱(recipe_id,r_name,r_description)。

ingredient_id 名称

1个洋葱

2 保罗
3 个胡椒

4 油

recipe_id ingredient_id category_id

1 3 1

1 4 1

2 3 1

2 4 1

recipe_id r_name r_description

1 阿多波好吃

2 Kaldereta 讨厌

我想要的是,如果我搜索“Pepper, Oil”,结果应该是与 adobo 和 kaldereta 成分相对应的食谱。

我试过了,但它只是静态的,我希望它是动态的,我还想展开 ingredient_name 以便我可以搜索多个词。

  public function get_halal()
{
$this->db->distinct();
$this->db->select('*');
$this->db->from('recipe');
$this->db->join('menu', 'menu.recipe_id = recipe.recipe_id');
$this->db->join('ingredient', 'ingredient.ingredient_id = menu.ingredient_id');
$this->db->where('menu.category_id = 1');
$this->db->like('ingredient.ingredient_name','Mango', 'both');
$query = $this->db->get();
return $query->result();

}

最佳答案

如果我明白你想做什么,试试这个。你需要设置你的 $search_values,你有一个字符串还是一个数组?假设你有一个字符串:

//$search_values = "Pepper, Oil";
public function get_halal($search_values)
{
$this->db->distinct();
$this->db->select('*');
$this->db->from('recipe');
$this->db->join('menu', 'menu.recipe_id = recipe.recipe_id');
$this->db->join('ingredient', 'ingredient.ingredient_id = menu.ingredient_id');
$this->db->where('menu.category_id = 1');

if (strpos($search_values, ',') !== false) {
$search = explode(',' , $search_values);
$this->db->like('ingredient.ingredient_name', trim($search[0]), 'both');
unset($search[0]);
foreach ($search as $term){
$this->db->or_like('ingredient.ingredient_name', trim($term), 'both');
}
}else{
//this means you only have one value
$this->db->like('ingredient.ingredient_name',$search_values, 'both');
}
$query = $this->db->get();
return $query->result();
}

如果 $search_values 是一个数组,您必须直接跳到 if 条件并执行 foreach。

关于php - 如何在 codeigniter 中搜索多个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com