Array to string conversion error Array to string conversion error codeigniter codeigniter

Array to string conversion error


$dataScope[] = $data;

but

$data[] = $scope;

therefore $dataScope has an array inside it's array. implode only work on one level, so that why you're getting this error.

You should note that this is actually possible in SQL:

 SELECT * FROM some_table WHERE id IN (SELECT site FROM another_table WHERE ... )

which would eliminate the entire need for this code.

That is:

$where = 'WHERE scope_scopes.sc_ID IN (SELECT site                                       FROM system_scoperights                                       WHERE user = '. $this->session->userdata('username') . ')';


I partially agree with Jay's answer...just remove the line:

$dataScope[] = $data

and use the $data variable directly since it's already an array:

$idList = implode(',', $data);

However you also should use ( and ) in your where clause:

$where = 'WHERE scope_scopes.sc_ID IN (' . $idList . ')';

Using sub-queries in your where clauses, although they do have their place at times, can cost a lot of overhead, especially using 'SELECT *'. Never ask for more than you need from your db tables :)