如何通过在 codeigniter 中使用 id 数组从数据库中获取数据?

How to get data from database by using an array of ids in codeigniter?

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

Array
(
  [0] => 1
  [1] => 3
  [2] => 4
)

我正在尝试从数据库中获取与数组中每个 id 相关的信息。

    $toppings = $this->input->get('topping');
    foreach ($toppings as $topping ) {
        $id = $topping;
        $toppinglist = $this->toppingmodel->find_topping($id);
        echo'<pre>'; print_r($toppinglist); die();

    }

型号Class-

function find_topping($id)
{
    $query = $this->db->get_where('Topping', array('id' => $id));
    return $query->row_array(); }

}

我得到的输出数组只是第一个id的数据

Array
(
  [id] => 1
  [slug] => mushroom
  [toppingName] => Mushrooms
  [price] => 50.00
)

如何获取与数组中每个 ID 相关的所有数据。 (嵌套数组) 谢谢。

您需要使用 WHERE IN().

进行 SQL 查询

在 Codeignitor 中,您可以使用 $this->db->where_in($tableName, $arrayOfVales)。了解更多 here

代码示例

function find_topping(array $ids)
{
    $query = $this->db->where_in('Topping', $ids);
    return $query->result_array(); 
}

控制器:-

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

注:- $idArr = array()表示

使该函数具有数组的默认值,否则如果传递了其他内容,您将在查询中遇到错误。