Php 如何使用codeigniter中的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

我的控制器中有一个id数组,在视图中的表单中有复选框输入<代码>$toppings=$this->input->get('topping')

我试图从数据库中获取与数组中每个id相关的信息

    $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();
}