带数组的Codeigniter where子句

jgzswidk  于 8个月前  发布在  其他
关注(0)|答案(2)|浏览(58)

这是我的Controller => wishlist函数

$data = array(
  'user_id' => $this->_user_id
  );
  $order_by = "id";
  $query = $this->Database_model->get_data('wishlist','*', $data, $order_by);

  print_r($query);

结果:

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [item_id] => 2
            [user_id] => 2
            [tarix] => 2018-03-13 00:00:00
        )

    [1] => stdClass Object
        (
            [id] => 2
            [item_id] => 15
            [user_id] => 2
            [tarix] => 2018-03-13 00:00:00
        )

    [2] => stdClass Object
        (
            [id] => 3
            [item_id] => 10
            [user_id] => 2
            [tarix] => 2018-03-13 00:00:00
        )

)

现在我想得到所有“items”表数据WHERE id =**所有这些“item_id”**inside array.
我尝试创建一个新数组,并使用foreach将所有item_id推入其中,但在Codeigniter中,我无法将其提供给query。

wswtfjt7

wswtfjt71#

你可以这样做:在控制器中

$data = array(
    'user_id' => $this->_user_id
);
$order_by = "id";
$query = $this->Database_model->get_data('wishlist','*', $data, $order_by);

$where = array();
foreach ($query as $key => $value)
    array_push($where, $value->item_id); //  Must be item_id

$my_items = $this->Database_model->get_custom_items('items', $where);

模型中

public function get_custom_items($table, $where)
{
    $this->db->select('*');
    $this->db->where_in('id', $where); // Must be id
    return $this->db->get($table)
}
jtw3ybtb

jtw3ybtb2#

当where_in传递的第二个参数不是数组格式时,会发生此错误。
在模型中:$this->db->where_in('id',array($where));

相关问题