• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Problems with where_not_in

Hi all,

I have a table with bands, and a table with genres. I also have a table that links both. So aband can have multiple genres. Now I want to show all genres that have not been assign to aband yet.

So I'm trying this: Get all genres in the bands2genre table, and the use that array as an exclusion for the genre table.

//Get all genres, except those assigned to the band
    function getAllGenres($bandid) {
        $this->db->where('band_id', $bandid);
        $assigned_genres = $this->db->get();
        $this->db->where_not_in('genre_id', $assigned_genres);
        //Get the records according to the above SQL statements
        $Q = $this->db->get();

        return $Q;

However, Im having errors: like this:

A PHP Error was encountered

Severity: Notice

Message: Object of class CI_DB_mysql_result to string conversion

Filename: database/DB_active_rec.php

Line Number: 586
A Database Error Occurred

Error Number: 1054

Unknown column 'Object' in 'where clause'

SELECT * FROM (`genres`) WHERE `genre_id` NOT IN (Object)

So, is my $assigned_genres not an array?

Any help appreciated!


get returns the query object not the actual result. The where_not_in expects an array as second parameter so the code changes are
$assigned_genres = $this->db->get();
// becomes
$query = $this->db->get();
$rows = $query->result();
$ids = array();
foreach($rows as $row)
   $ids[] = $row->genre_id
/* and */
$this->db->where_not_in('genre_id', $assigned_genres);
// becomes
$this->db->where_not_in('genre_id', $ids);

Great, thx man.

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  

  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.