codeigniter
Estructura de consulta
Buscar..
Seleccionando datos
Las siguientes funciones le permiten crear instrucciones SQL SELECT.
$this->db->get()
Esto ejecuta la consulta de selección y devuelve el resultado. Se puede usar solo para recuperar todos los registros de una tabla:
$query = $this->db->get('tablename'); // Produces: SELECT * FROM tablename
Los parámetros segundo y tercero le permiten establecer una cláusula de límite y compensación:
$query = $this->db->get('tablename', 10, 20);
// Executes: SELECT * FROM tablename LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)
Seleccionando datos
Seleccionando datos con condicion
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->get();
return $query->result();
Selección de datos con múltiples condiciones.
$conditions = array('column_name_1' => $value_1, 'column_name_2' => $value_2);
$query = $this->db->select('*')
->from('table_name')
->where($conditions) // Conditions
->get();
return $query->result();
Seleccionar datos con condición y límite.
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->limit(10) // Maximum 10 rows
->get();
return $query->result();
Seleccionar datos con condición, filas máximas y orden descendente
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->limit(10) // Maximum 10 rows
->order_by('id','DESC') // Order data descending
->get();
return $query->result();
Selección de datos con el segundo parámetro opcional
Normalmente no estamos usando el segundo parámetro en select([$select = '*'[, $escape = NULL]])
en CodeIgniter. Si lo configura en FALSO, CodeIgniter no intentará proteger sus nombres de campo o tabla.
En el siguiente ejemplo, vamos a seleccionar el campo de tipo de fecha y hora mediante el formateo utilizando la consulta sql y lo estableceremos en FALSE
(al hacer esto, le diremos a CI que no escape de la consulta automáticamente).
public function getUserInfo($id)
{
$this->db->select('BaseTbl.id, BaseTbl.name, DATE_FORMAT(BaseTbl.createdDtm, "%d-%m-%Y") AS createdDtm', FALSE); // FALSE is the second optional parameter
$this->db->from('tbl_users as BaseTbl');
$this->db->where('isDeleted', 0);
$this->db->where('BaseTbl.id', $id);
$query = $this->db->get();
return $query->result();
}
Si no lo configuramos en FALSE
, automáticamente se escapará y romperá la consulta.
Unir tablas usando el generador de consultas
A veces necesitamos unir varias tablas para obtener datos agregados a cambio. aquí es cómo podemos lograr lo mismo utilizando CodeIgniter Query Builder / Active Records.
public function getStudentInfo($studentid){
$query = $this->db->select("st.id, st.name, st.class, mk.maths, mk.science")
->from("students as st")
->join("marks as mk", "mk.student_id = st.id", "inner")
->where("st.id", $studentId)
->get();
return $query->result();
}
Aquí usamos join () para unir varias tablas y podemos cambiar el tipo de unión en el tercer parámetro como "interior", "izquierda", "derecha", etc.