2017-06-26 2 views
0

In Yii2, betrachte zwei Tabellen Eltern und Kind. Wenn das Kind eine Beziehung zum Elternteil hat dann beim Schreiben Join-Abfrage wird es produzieren führen wieCodeigniter: relationale Datenbank als assoziatives Array wie yii2

Parent[id => 1, 
    firstname => "John", 
    lastName => "Miller" 
    child => [id : 1, 
       address : some address, 
       contact number : some nubmer 
    ] 
] 

Aber in CodeIgnitor wird es als das gleiche wie eine Ausgabe von mysql Abfrage angezeigt. Wie erreiche ich meine Anforderungen in CodeIgnitor?

Vielen Dank im Voraus.

+0

Überprüfen Sie [MY_Model] (https://github.com/avenirer/CodeIgniter-MY_Model), was angeboten wird. – Tpojka

Antwort

0

Es gibt verschiedene Methoden, um dies zu erreichen. Sie können eine Abfrage für die Eltern tun und Zyklus dann die Childs

$query_parent = $this->db->query($" 
    SELECT * 
    FROM parent 
    WHERE id = ?", [$parent_id]); 

if($query_parent !== FALSE && $query_parent->num_rows() > 0) 
{ 
    $result_array_parent = $query_parent->result_array(); 
    $query_parent->free_result(); 

    foreach ($result_array_parent as $k_p => $v_p) 
    { 
     $query_child = $this->db->query($" 
      SELECT * 
      FROM child 
      WHERE id = ?", [$v_p['id']); 

     if($query_child !== FALSE && $query_child->num_rows() > 0) 
     { 
      $result_array_child = $query_child->result_array(); 
      $query_child->free_result(); 

      foreach ($result_array_child as $k_c => $v_c) 
      { 
       $result_array_parent[$k_p]["child_".$k_c] = $v_c; 
      } 
     } 
    } 
} 

Oder eine Abfrage Join tun und es dann in ein Array umwandeln.