Php 如何使用codeigniter中的ID数组从数据库中获取数据?
我的控制器中有一个id数组,在视图中的表单中有复选框输入<代码>$toppings=$this->input->get('topping')代码> 我试图从数据库中获取与数组中每个id相关的信息Php 如何使用codeigniter中的ID数组从数据库中获取数据?,php,mysql,arrays,codeigniter,model-view-controller,Php,Mysql,Arrays,Codeigniter,Model View Controller,我的控制器中有一个id数组,在视图中的表单中有复选框输入$toppings=$this->input->get('topping') 我试图从数据库中获取与数组中每个id相关的信息 $toppings = $this->input->get('topping'); foreach ($toppings as $topping ) { $id = $topping; $toppinglist = $this->toppingmode
$toppings = $this->input->get('topping');
foreach ($toppings as $topping ) {
$id = $topping;
$toppinglist = $this->toppingmodel->find_topping($id);
echo'<pre>'; print_r($toppinglist); die();
}
我得到的输出数组只是第一个id的数据
function find_topping(array $ids)
{
$query = $this->db->where_in('Topping', $ids);
return $query->result_array();
}
如何获取与数组中每个id相关的所有数据。(嵌套数组)
谢谢。您需要使用WHERE IN()进行SQL查询 在Codeignitor中,您可以使用$this->db->where_In($tableName,$arrayOfVales)。了解更多 代码示例
$toppings = $this->input->post('topping'); //Array
$toppinglist = $this->toppingmodel->find_topping($toppings);
控制器:-
function find_topping($idArr = array()){ //Array
$query = $this->db->where_in("Topping", $idArr)->get("tablename");
return $query->result_array();
}
型号:-
function find_topping($idArr = array()){ //Array
$query = $this->db->where_in("Topping", $idArr)->get("tablename");
return $query->result_array();
}
注意:-
$idArr=array()
表示
使函数具有默认值array,否则如果传递了其他内容,则查询中将出错。
$this->db->where_in('Topping',$toppings)代码>如何从控制器传递id。我尝试使用db->where_in
,但现在抛出了一个类型错误,提示消息:传递给toppingmodel::find_topping()的参数1必须是数组类型,给定字符串,
@Dilki Sasikala您在id
或'array`$toppings=$this->input->->get('topping')代码>您需要向函数find_topping()发送一个ID数组;仍然会抛出一个错误<代码>调用未定义的方法CI\u DB\u mysqli\u driver::result\u array()
ID
在一列中以逗号分隔值??ID在一个数组中。数组结构显示在问题的顶部,现在请尝试我的更新答案&让我知道发生了什么???。非常感谢。我现在正在获取数据数组
$toppings = $this->input->post('topping'); //Array
$toppinglist = $this->toppingmodel->find_topping($toppings);
function find_topping($idArr = array()){ //Array
$query = $this->db->where_in("Topping", $idArr)->get("tablename");
return $query->result_array();
}