2016-03-04 115 views
1

我使用pivot從我的表中選擇一些記錄。這是查詢:用Codeigniter檢索查詢結果

$data['master'] = $this->db->query("select * from 
     (
     select row, c.Nilai,b.Fullname,a.KodePenilaian,d.Description from penilaian_header a 
     left join employee b on a.Nip = b.Nip 
     left join outlet d on a.Outlet = d.OutletCode 
     left join (select ROW_NUMBER() OVER(PARTITION BY KodePenilaianH ORDER BY idPenilaiand DESC) AS Row, Nilai,KodePenilaianH from penilaian_Detail 
     ) c on a.KodePenilaian = c.KodePenilaianH where a.Outlet like '%$outlet%' and Periode like '%$periode%' 
     ) nilai 
     pivot 
     (
     sum(nilai) 
     for row in ([1],[2],[3],[4],[5]) 
     ) piv;")->result(); 

而這個結果時,我通過MS SQL管理工具運行

enter image description here

現在,我的問題是檢索這些[1],[2],[3],[4],[5]值。當我這樣做:

echo "<pre>";print_r($data['master']); 
die(); 

我只得到這樣的:

Array 
(
    [0] => stdClass Object 
     (
      [Fullname] => maya kristiana 
      [KodePenilaian] => PE0000001 
      [Description] => KIOS ATRIUM3 
     ) 

    [1] => stdClass Object 
     (
      [Fullname] => SHELVIA GITA PUTRI 
      [KodePenilaian] => PE0000002 
      [Description] => KIOS ATRIUM3 
     ) 

) 

更新: 我找到了解決方案,這要歸功於@Alex格子呢(見下面的接受的答案):

我只是將我的->result()更改爲->result_array();

並且結果如現所需:

enter image description here

+0

有什麼問題? –

+0

我的問題是檢索[1],[2],[3],[4],[5]字段值 – Boby

+0

使用foreach($ data ['master']作爲$ data){echo $ data}或$數據[ '主'] [0] - >全名; –

回答

2

你可能想的對象是 「怪異」 的,至少可以說使用

->result_array(); // instead of `->result();` 

數值屬性。
再加上閱讀它們的麻煩。你不得不echo $obj->{1}
此外,設置它們意味着相同的方法:$obj->{1} = 'stuff'

笨可能無法做到這一點。

獲取它們作爲陣列將繞過這個問題(希望)

+0

它正在工作,謝謝。 – Boby

+0

@Boby,很高興幫助 –

0

該函數返回查詢結果作爲純陣列,或當沒有結果產生一個空數組。通常你會在foreach循環使用,像這樣:

這將返回所有記錄作爲數組結果:

$query = $this->db->query("YOUR QUERY"); 

foreach ($query->result_array() as $row) 
{ 
echo $row['title']; 
echo $row['name']; 
echo $row['body']; 
} 

而且如果你需要得到單記錄那麼你可以使用這個:

$query = $this->db->query("YOUR QUERY"); 

if ($query->num_rows() > 0) 
{ 
    $row = $query->row(); 

    echo $row->title; 
    echo $row->name; 
    echo $row->body; 
} 

另請參閱this它會幫助你