2013-07-27 5 views
0

Я хочу отправить 2 строки через массив из контроллера в модель и получить результаты из db, но есть проблема, с которой я сталкиваюсь.Передача 2 строк по массиву в предложение where в codeigniter

Мой контроллер как:

$data = array(); 
if($query = $this->authors_model->get_authors_list(array('author_Type' => array('admin', 'author')))) 
{ 
    $data['authors'] = $query; 
} 

Моя модель:

function get_authors_list($options = array()) 
{   

    if(isset($options['author_Type'])) 
    $this->db->where('author_Type', $options['author_Type']); 

    $this->db->order_by('author_Id', 'ASC'); 
    $query = $this->db->get('mg_authors'); 

    return $query->result(); 
} 

и ошибка я получаю:

PHP-ошибка была обнаружена

Серьезность : Уведомление

Сообщение: Массив для преобразования строки

Имя файла: базы данных/DB_active_rec.php

Порядковый номер: 427


Номер ошибки: 1054

Неизвестный столбец " Массив 'in' where where '

SELECT * FROM (mg_authors) WHERE author_Type = Массив ORDER BY author_Id ASC LIMIT 15

Имя файла: D: \ XAMPP \ HTDOCS \ спорт \ система \ базы данных \ DB_driver.php

Line Number: 330

+1

Вы передаете '$ варианты [ 'author_Type']' 'массив AR :: где()' метод, который генерирует 'author_Type = Array'. Это ошибка. –

ответ

3

Вам нужно использовать WHERE IN, когда вы кладете массив. В CodeIgniter, это нужно сделать так:

$this->db->where_in('author_Type', $options['author_Type']);