2016-03-30 23 views
0

Bitte überprüfen Sie zuerst mein Skript.So erhalten Sie Wert von Abfrage

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

Wie mein Script Arbeit: in $Arealeader i wählen jedes OutletCode von meinem Tisch mit Zustand. Dann, nachdem ich den OutletCode habe, möchte ich Nip Von Angestellter mit als Bedingung auswählen.

Problem: Wenn echo $row->Nip."<br>";. Ich bekomme nur einen weißen Bildschirm.

var_dump($row);` 

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

Haben Sie versucht, var_dump für $ row aufzurufen? – patwoj98

+1

Sie sollten diese Abfragen beitreten, so dass es nur 1 Abfrage ist. Das kann dir eine Menge Leistung ersparen. – Ivar

+0

Anstatt var_dump für Zeile, versuchen Sie, $ Mp, nach der ersten foreach vardump. – Ivar

Antwort

0

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

ich mein Skript oben und wechseln Sie in das ändern.

$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(); 

Ich fand es funktioniert gut für mich jetzt. Wenn ihr einen besseren Weg habt, bitte erzählt es mir.

Verwandte Themen