2017-03-06 35 views
0

私のデータベースには1つのブランドと2つのブランチがありますが、私は各ブランチの売上データを取得しています。Laravel forループは配列内のデータを返します

public function getCurrentSales($brandid){ 
$branches = DB::table('gc_branch')->where('BRAND_ID', $brandid) 
            ->select('BRANCHID', 'BRANCHNAME') 
            ->get(); 

for ($i=0; $i<count($branches);$i++){ 
$mtdnetsales= DB::table('st_sales') 
//query 
->select(DB::raw('sum(AMOUNT) as TOT')->get(); 

$ytdnetsales= DB::table('st_sales') 
//query 
->select(DB::raw('sum(AMOUNT) as TOT')->get(); 


$netsalesdata=[['BRANCHID' => $branches[$i]->BRANCHID, 'BRANCHNAME' =>branches[$i]->BRANCHNAME, 'MTDNETSALES' =>$mtdnetsales[0]->TOT, 'YTDNETSALES' =>$ytdnetsales[0]->TOT]]; 

}//end for 

return $netsalesdata; 

私の問題は、次のとおりです。

  • 私はforループで復帰$netsalesdataを置く場合、私はループの外に置いた場合、私は、最初に生のみ(のみ1つの支店)
  • を取得私は、私のデータベースを持っていながら、2本の枝
+0

を枝)。あなたは両方の枝を手に入れますか? – Onix

答えて

1

変更があなたのnetste(第2の分岐のみ)最後の行を取得しますこれにリャル(およびforループの内側にそれを維持):

$netsalesdata[$i]=[['BRANCHID' => $branches[$i]->BRANCHID, 'BRANCHNAME' =>branches[$i]->BRANCHNAME, 'MTDNETSALES' =>$mtdnetsales[0]->TOT, 'YTDNETSALES' =>$ytdnetsales[0]->TOT]]; 

と返すこの:

return $netsalesdata[]; 
+0

ありがとうございます –

0
public function getCurrentSales($brandid) { 
    $branches = DB::table('gc_branch')->where('BRAND_ID', $brandid) 
        ->select('BRANCHID', 'BRANCHNAME')->get(); 

    for ($i=0; $i<count($branches);$i++){ 
     $mtdnetsales= DB::table('st_sales') 
       ->select(DB::raw('sum(AMOUNT) as TOT')->get(); 

     $ytdnetsales= DB::table('st_sales') 
       ->select(DB::raw('sum(AMOUNT) as TOT')->get(); 

     $netsalesdata[] =[ 
      'BRANCHID' => $branches[$i]->BRANCHID, 
      'BRANCHNAME' =>branches[$i]->BRANCHNAME, 
      'MTDNETSALES' =>$mtdnetsales[0]->TOT, 
      'YTDNETSALES' =>$ytdnetsales[0]->TOT]; 

    }//end for 

    // get size of the array 
    $records = count($netsalesdata); 
    // To get last record 
    print_r($netsalesdata[$records -1]); 
} 
0

を使用して、新しい変数追加するarray_push機能:あなたは($をddは場合

public function getCurrentSales($brandid){ 
    $netsalesdata= []; 
    $branches = DB::table('gc_branch')->where('BRAND_ID', $brandid) 
             ->select('BRANCHID', 'BRANCHNAME') 
             ->get(); 

    for ($i=0; $i<count($branches);$i++){ 
     $mtdnetsales= DB::table('st_sales') 
     //query 
     ->select(DB::raw('sum(AMOUNT) as TOT')->get(); 

     $ytdnetsales= DB::table('st_sales') 
     //query 
     ->select(DB::raw('sum(AMOUNT) as TOT')->get(); 


     array_push($netsalesdata, ['BRANCHID' => $branches[$i]->BRANCHID, 'BRANCHNAME' =>branches[$i]->BRANCHNAME, 'MTDNETSALES' =>$mtdnetsales[0]->TOT, 'YTDNETSALES' =>$ytdnetsales[0]->TOT]); 

    }//end for 

    return $netsalesdata; 
} 
関連する問題