Search code examples
phpmysqlarrayscodeigniter

Codeigniter where clause with array


in Codeigniter This is my Controller => wishlist function

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

  print_r($query);

RESULT:

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
        )

)

And now I want to get all "items" table datas WHERE id = all these "item_id" inside array.

I tried to create new array and push all item_id inside it, using foreach, but in Codeigniter I can't give it to query.


Solution

  • You can do it like this: In your controller

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

    In your model

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