2016-03-30 4 views
0

スクリプトを最初に確認してください。クエリから値を取得する方法

$arealeader = $this->db->query("select OutletCode from arealeader where NipLeader = '$Nip'")->result(); 
      $Mp=array(); 
      foreach($arealeader as $row) 
      { 
       $Mp[] = $this->db->query("select Nip from Employee where OutletCode = '".$row->OutletCode."'")->result(); 
       $MpCount[] = $this->db->query("select Nip from Employee where OutletCode = '".$row->OutletCode."'")->num_rows(); 

      } 

      echo array_sum($MpCount) // Result 18 
      foreach($Mp as $row) 
      { 
       echo $row->Nip."<br>"; 
      } 

どのように私のスクリプトの仕事:$Arealeaderに私は条件と私のテーブルからすべてのOutletCodeを選択します。その後、OutletCodeを取得した後、Nipを選択したい。OutletCodeの従業員から条件を選択します。

問題:echo $row->Nip."<br>";。私は白い画面しか得ません。

var_dump($row);` 

    i get this 
`array(1) { 
     [0]=> 
     object(stdClass)#52 (1) { 
     ["Nip"]=> 
     string(9) "201603172" 
     } 
    } 
+0

$ rowでvar_dumpを呼び出そうとしましたか? – patwoj98

+1

これらのクエリを結合して、1つのクエリにする必要があります。これにより、多くのパフォーマンスを節約できます。 – Ivar

+0

行のvar_dumpの代わりに、最初のforeachの後に$ Mpをvardumpしてみてください。 – Ivar

答えて

0

ivar : You should join those queries so it is only 1 query. That can save you a lot of performance

私は上記の私のスクリプトを変更し、これに変更します。

$data['master'] = $this->db->query("select a.*,b.fullname from SaldoCuti a 
        left join employee b on a.Nip = b.Nip 
        left join outlet c on b.OutletCode = c.OutletCode 
        left join arealeader d on c.OutletCode = d.OutletCode  
        where NipLeader = '$Nip'")->result(); 

私はそれが今ではうまく動作することがわかりました。あなた方がもっと良い方法を持っているなら、教えてください。