2014-10-20 3 views
-2

Если я пытаюсь получить упорядоченный массив результатов в мой контроллер так:Codeigniter order_by возвращает странные результаты

$data1 = array(); 
$data1['acontentid'] = $id; 
$data1['acgid']=$_POST['acgid']; 
$data1['Sort'] = '0'; 

$data1 = $this->my_model->where('acgid', $data1['acgid'])->order_by('Sort'); 

Я ожидаю, что результаты, которые можно заказать в порядке возрастания их целочисленное значение в моей БД колонке под названием «Сортировка». Однако я получаю все дело странных результатов:

object(Acontentgallery_model)[77] 
    protected 'table_name' => string 'acontentgallery' (length=15) 
    protected 'key' => string 'id' (length=2) 
    protected 'soft_deletes' => boolean false 
    protected 'date_format' => string 'datetime' (length=8) 
    protected 'log_user' => boolean false 
    protected 'set_created' => boolean false 
    protected 'set_modified' => boolean false 
    protected 'before_insert' => 
    array (size=1) 
     0 => string 'protect_attributes' (length=18) 
    protected 'after_insert' => 
    array (size=0) 
     empty 
    protected 'before_update' => 
    array (size=1) 
     0 => string 'protect_attributes' (length=18) 
    protected 'after_update' => 
    array (size=0) 
     empty 
    protected 'before_find' => 
    array (size=0) 
     empty 
    protected 'after_find' => 
    array (size=0) 
     empty 
    protected 'before_delete' => 

///etc... 

Fixed: corrrect способа написать это:

$this->my_model->where('acgid', $data1['acgid'])->order_by('Sort', 'asc')->find_all(); 

мне пришлось добавить ->find_all() в конце

ответ

0

«из официального Codeigniter Документация:

Lets you set an ORDER BY clause. 
The first parameter contains the name of the column you would like to order by. 
The second parameter lets you set the direction of the result. 
**`Options are asc or desc, or random.`** 



$this->db->order_by("title", "desc"); 

// Produces: ORDER BY title DESC 

Так оно и должно быть:

$data1 = $this->my_model->where('acgid', $acgid)->order_by('Sort','asc'); 
+0

да я в курсе документации и я прочитал этот конкретный один. Я все еще получаю эти результаты. – Orangutan

+0

@future_man отредактировал последний абзац несколько секунд назад, все же те же самые отказы? – Shaeldon

+0

@future_man Вы печатаете все результаты? В этой части отсутствует код, в котором находится выход, возможно, вы хотите включить его в свой первый пост. – Shaeldon

0

должно быть

$this->db->where('acgid', $acgid)->order_by('Sort')->get('table_name')->result(); 
+0

get() - неопределенный метод! – Orangutan

+0

@future_man Вы используете это расширение? если вы используете этот get определен я думаю https://github.com/jamierumbelow/codeigniter-base-model –

0

попробовать

$data1 = $this->my_model->as_array()->get_by('acgid', $acgid)->order_by('Sort','asc'); 
+0

Звонок на неопределенный метод Acontentgallery_model :: get_by() – Orangutan

Смежные вопросы