如何通过在 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()
表示
使该函数具有数组的默认值,否则如果传递了其他内容,您将在查询中遇到错误。
我的控制器中有一个 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()
表示
使该函数具有数组的默认值,否则如果传递了其他内容,您将在查询中遇到错误。