Cecil
Cecil

Reputation: 1619

How to add an ORDER BY clause using CodeIgniter's Active Record methods?

I have a very small script to get all records from a database table, the code is below.

$query = $this->db->get($this->table_name);
return $query->result();

Using this syntax, how would I add a ORDER BY 'name' clause to my select query?

I get errors every time I stick the order by bit on the end.

Upvotes: 66

Views: 401835

Answers (5)

vijayabalan
vijayabalan

Reputation: 99

function getProductionGroupItems($itemId){
     $this->db->select("*");
     $this->db->where("id",$itemId);
     $this->db->or_where("parent_item_id",$itemId);

    /*********** order by *********** */
     $this->db->order_by("id", "asc");

     $q=$this->db->get("recipe_products");
     if($q->num_rows()>0){
         foreach($q->result() as $row){
             $data[]=$row;
         }
         return $data;
     }
    return false;
}

Upvotes: 0

Ted Avery
Ted Avery

Reputation: 5689

I believe the get() function immediately runs the select query and does not accept ORDER BY conditions as parameters. I think you'll need to separately declare the conditions, then run the query. Give this a try:

$this->db->from($this->table_name);
$this->db->order_by("name", "asc");
$query = $this->db->get(); 
return $query->result();

CodeIgniter Documentation order_by()

Upvotes: 154

Obi Dennis Chizolu
Obi Dennis Chizolu

Reputation: 108

Just add the'order_by' clause to your code and modify it to look just like the one below.

$this->db->order_by('name', 'asc');
$result = $this->db->get($table);

There you go.

Upvotes: 2

Naresh Kumar
Naresh Kumar

Reputation: 814

Using this code to multiple order by in single query.

$this->db->from($this->table_name);
$this->db->order_by("column1 asc,column2 desc");
$query = $this->db->get(); 
return $query->result();

Upvotes: 19

VBMali
VBMali

Reputation: 1380

Simple and easy:

$this->db->order_by("name", "asc");
$query = $this->db->get($this->table_name);
return $query->result();

Upvotes: 4

Related Questions