Zoeken…


Gegevens selecteren

Met de volgende functies kunt u SQL SELECT-instructies samenstellen.

$this->db->get()

Hiermee wordt de selectiequery uitgevoerd en wordt het resultaat geretourneerd. Kan op zichzelf worden gebruikt om alle records uit een tabel op te halen:

$query = $this->db->get('tablename');  // Produces: SELECT * FROM tablename

Met de tweede en derde parameter kunt u een limiet- en offsetclausule instellen:

$query = $this->db->get('tablename', 10, 20);

// Executes: SELECT * FROM tablename LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)

Gegevens selecteren

Gegevens selecteren met voorwaarde

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition 
                   ->get();
return $query->result();

Gegevens selecteren met meerdere voorwaarden

$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();

Selecteer gegevens met voorwaarde en limiet

$query  = $this->db->select('*')
                   ->from('table_name')
                   ->where('column_name', $value) // Condition
                   ->limit(10) // Maximum 10 rows
                   ->get();
return $query->result();

Selecteer gegevens met voorwaarde, maximale rijen en aflopende volgorde

$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();

Gegevens selecteren met tweede optionele parameter

Meestal gebruiken we geen tweede parameter in select([$select = '*'[, $escape = NULL]]) in CodeIgniter. Als u FALSE instelt, probeert CodeIgniter uw veld- of tabelnamen niet te beschermen.

In het volgende voorbeeld gaan we het datetime-type veld selecteren door het te formatteren met de sql-query en het FALSE (hiermee gaan we CI vertellen dat het niet automatisch aan de query moet ontsnappen).

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();
}

Als we het niet op FALSE , ontsnapt het automatisch en wordt de zoekopdracht afgebroken.

Deelnemen aan tabellen met behulp van Query Builder

Soms moeten we aan meerdere tabellen deelnemen om geaggregeerde gegevens terug te krijgen. hier is hoe we hetzelfde kunnen bereiken met 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();        
}

Hier gebruiken we join () om meerdere tabellen samen te voegen en kunnen we het jointype wijzigen in de 3e parameter zoals "inner", "left", "right" etc.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow