2017-02-26 7 views
0

Ich habe eine Tabelle, die Kind und Eltern hat und Pid für Eltern ist 0 und für Kind ist ID von Eltern. Ich möchte Eltern mit der Anzahl der Kinder dieses Elternteils auswählen.Wie wählt man die Kindernummer eines Elternteils?

mein Modell:

function parent_child() 
    { 


     $row1 = 
      "SELECT tbl_test.ID,tbl_user.Name,tbl_user.FamilyName, 
tbl_test.Name 
from tbl_test,tbl_user 
       WHERE tbl_user.UID=tbl_test.UserID 
       AND tbl_test.PID=0 
       AND tbl_test.Status=0 
       "; 
     $parent=$this->db->query($row1)->result(); 
     foreach ($parent as $row) 
     { 
      $row1 = 
      "SELECT COUNT(ID) 
       from tbl_test 
       WHERE tbl_test.PID IN $row->ID "; 
      $parent['childcount']=$this->db->query($row1)->result(); 

      return $parent; 
     } 

mein Controller:

public function parent_child() 
    { 


     $this->load->model('test'); 
     $temp=$this->test->parent_child(); 
     $output= json_encode($temp); 

     die($output); 

    } 

ich diese Ausgabe

{ 
    "parent": { 
    "ID": "2",  
    "childcount": 3 

} 
    } 
+0

wie kann ich foreach mit Schlüsselwert für diesen Fall – Zoee

Antwort

1

Try This

public function parent_child() 
{  

    $st=$this->db->select('SELECT tbl_test.ID, tbl_test.Name, tbl_user.Name, tbl_user.FamilyName from 
          tbl_test 
          JOIN 
          tbl_user on tbl_user.UID=tbl_test.UserID 
          WHERE 
          tbl_test.PID=0 AND 
          tbl_test.Status=0')->result_array(); 
    if(count($st)>0) 
    { 
     for($i=0;$i<count($st);$i++) 
     { 
      $rows=$this->db->select('*')->from('tbl_test')->WHERE('PID',$st[$i]['id'])->get()->result_array(); 
      $st[$i]['childcount']=count($rows); 
     } 
     return $st; 
    } 
    else 
    { 
     return array(); 
    } 
} 
+0

danken Ihnen für Ihre Hilfe verwenden :) – Zoee

0

Sie Codeigniter Abfrage Bulider

$this->db->select('tbl_test.ID'); 
$this->db->from('tbl_test'); 
$this->db->join('tbl_user', 'tbl_user.PID = tbl_test.ID'); 
$this->db->where('tbl_test.Status', '0'); 
$result = $this->db->count_all_results(); 

return $result; 
verwenden wollen 0
Verwandte Themen