2011-03-16 44 views
39

tengo una pequeña secuencia de comandos para obtener todos los registros de una tabla de base de datos, el código está por debajoCodeIgniter - ORDER BY en una consulta

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

con esta sintaxis, ¿Cómo puedo realizar un pedido por 'nombre'?

Recibo errores cada vez que pego el pedido por bit al final.

Saludos,

Respuesta

86

Creo que la función get() se ejecuta inmediatamente la consulta de selección y no acepta ORDER BY condiciones como parámetros. Creo que deberás declarar las condiciones por separado y luego ejecutar la consulta. Dale una oportunidad.

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

Ahhhh que tenga sentido .. Gracias por que – Cecil

+1

enlace a la documentación: http://ellislab.com/codeigniter/user-guide/database/active_record.html –

0

simple y fácil:

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

Sólo añadir the'order_by' cláusula a su código y modificarlo para que se parecen a la de abajo.

$this->db->order_by('name', 'asc'); 
$this->db->where('table_name'); 

Ahi lo tienes.

8

Utilizando este código para ordenar varias en una sola consulta.

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

intenta esto:

 $this->db->select('main.*'); 
     $this->db->from("ci_table main"); 
     $this->db->order_by("main.id", "DESC"); 
     return $this->db->get()->result(); 
Cuestiones relacionadas