2017-01-01 186 views
1

需要以下幫助。我想調用所有有關的行,但我只能得到一個。 我已經嘗試過所有可能的方法來輸出這個,我得到的只是來自不同會話的一個結果。 getID函數調用活動會話用戶標識,但結果對於所有會話都是相同的。MySQL SELECT查詢只返回一行

public function getChildId() 
{ 
    $child_id = $this->db->query("SELECT firstname, lastname 
     FROM " . $this->db->table("customers") . " 
     RIGHT JOIN " . $this->db->table("genealogy") . " on parent_id 
       WHERE parent_id = '". $this->customer->getID(). "'" 
    ); 
    foreach ($child_id as $child => $child_id->num_rows) { 
      $child = array(
       $this->name = $child_id->row['firstname'], 
       $this->surname = $child_id->row['lastname'] 
      ); 
    } 
    return $child; 
} 

}

var_dump ($child)我得到:array (size=2) 0 => string 'John' (length=8) 1 => string 'Doe' (length=9) 我有數據庫

+1

'在paren上t_id =?' –

+0

您正在每次迭代中重新創建數組。您需要在循環外定義數組並將其添加到循環中。 – shmosel

+0

@Sougata Bose。那就是我加入表格 –

回答

1

在要覆蓋或重新創建陣列$child每次迭代3個客戶條目/行,因此在最後你只在數組$child中只有一個元素(最後一行迭代)。

變化

$child = array(
       $this->name = $child_id->row['firstname'], 
       $this->surname = $child_id->row['lastname'] 
      ); 

(推送一個或多個元件到陣列的在每次迭代結束時)

$child[] = array(
       $this->name = $child_id->row['firstname'], 
       $this->surname = $child_id->row['lastname'] 
      ); 

也可以使用array_push像下面

array_push(
      $child, 
      array(
        $this->name = $child_id->row['firstname'], 
        $this->surname = $child_id->row['lastname'] 
       ) 
      ); 
+0

謝謝@Akshay Hegde。第一個查詢工作 –