2017-01-01 3 views
1

以下のヘルプが必要です。私はすべての行をまだ呼びたいと思っていますが、私はただ一つしか取得しません。 私はこれを出力するためのすべての可能な方法を試しました、そして、私が得るのは、異なるセッションからの1つの結果です。 getID関数はアクティブ・セッション・ユーザーIDを呼び出しますが、結果はすべてのセッションで同じです。 var_dump ($child)MySQL SELECTクエリでは1行しか返さない

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

}

私が取得:array (size=2) 0 => string 'John' (length=8) 1 => string 'Doe' (length=9) 私はあなたがちょうど終わり、したがって、配列$childを上書きまたは再作成され、各反復でデータベース

+1

'on paren t_id =? ' –

+0

各繰り返しで配列を再作成しています。ループの外に配列を定義し、その中に配列を追加する必要があります。 – shmosel

+0

@Sougata Bose。それは私がテーブルに加わるところです。 –

答えて

1

のカスタマーエントリ/行を持っています配列$childには1つの要素(反復の最後の行)しかありません。

変更

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

するにも同様にarray_pushを使用することができ

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

(各反復の配列の端部に一つ以上の要素を押し)

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

Thanks @Akshay Hegde。最初のクエリが機能しました –

関連する問題