codeigniter
Struttura delle query
Ricerca…
Selezione dei dati
Le seguenti funzioni consentono di creare istruzioni SQL SELECT.
$this->db->get()
Questo esegue la query di selezione e restituisce il risultato. Può essere usato da solo per recuperare tutti i record da una tabella:
$query = $this->db->get('tablename'); // Produces: SELECT * FROM tablename
Il secondo e il terzo parametro consentono di impostare una clausola limite e offset:
$query = $this->db->get('tablename', 10, 20);
// Executes: SELECT * FROM tablename LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)
Selezione dei dati
Selezione dei dati con condizioni
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->get();
return $query->result();
Selezione dei dati con più condizioni
$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();
Seleziona i dati con condizioni e limiti
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->limit(10) // Maximum 10 rows
->get();
return $query->result();
Seleziona i dati con condizioni, righe massime e ordine decrescente
$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();
Selezione dei dati con il secondo parametro opzionale
Di solito non usiamo il secondo parametro in select([$select = '*'[, $escape = NULL]])
in CodeIgniter. Se lo si imposta su FALSE, CodeIgniter non tenterà di proteggere il campo oi nomi dei tavoli.
Nell'esempio seguente, selezioneremo il campo del tipo data / ora formattandolo usando sql query e impostandolo su FALSE
(facendo ciò, diremo a CI di non uscire automaticamente dalla query).
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();
}
Se non lo impostiamo su FALSE
, esso scappa e interrompe automaticamente la query.
Unire tabelle utilizzando il generatore di query
A volte abbiamo bisogno di unire più tabelle per ottenere in cambio dati aggregati. ecco come possiamo ottenere lo stesso usando 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();
}
Qui usiamo join () per unire più tabelle e possiamo modificare il tipo di join in 3 ° parametro come "inner", "left", "right" ecc.