2013-02-28 119 views
0

我有兩個查詢$ q1和$ q2。 從query1我得到多個記錄,每個記錄都有id,我想用這個id作爲第二個查詢條件。傳遞兩個查詢結果以在codeigniter中查看

我在控制器中這樣做。 我試過下面的代碼。 在foreach我試圖存儲id並傳遞給$ q2條件。

//Query 1 
    $q1 = $this->db->select(array(
           'spf.id as id' , 
            'spf.name', 
           'spf.added_on' 
           ))->from('sp_form spf')->where($where)->order_by('spf.id desc')->limit(10, $page * 10)->get(); 
        $data['data'] = $q1->result_array(); 

       foreach($data as $rec) 
       { 
        $id = $rec['id']; // here how i catch id for each row 

       //Query 2 

        $q2 = $this->db->select("count('id') as count ")->from('sp_topic spft')->where('spft.formid',$id)->get(); 
         $data['count'] = $q1->row_object(); 
       } 
       // pass combine result to view 

       $this->load->view('myview', $data,true); 

編輯:

This is my view. 

I have try Nishant answer and i get resultq1 using foreach but how can i get result of resultq2. 


    <table width="100%"> 
     <tr> 
     <td class="th"> Details</td> 
     <td width="5%" class="th"> Answer</td> 
     <td width="15%" class="th">Started by</td> 
     <td width="15%" class="th">Created on</td> 
     </tr> 
     <?php foreach($resultq1 as $row):?> 
     <tr> 
     <td><?php echo $row['name'] ;?></td> 

     <td >---- </td> // here i want to use resultq2 

     <td><?php echo $row['added_by'] ;?></td> 
     <td ><?php echo $row['added_on'];?></td> 
     </tr> 
     <?php endforeach;?> 
    </table> 

回答

0

你能做到這樣。

$resultq1= $q1->result_array(); 
$data['resultq1'] = $resultq1; 

$resultq2 = array();$i=0; 
foreach($resultq1 as $row){ 
    $id = $row['id']; 
    $q2 = $this->db->select("count('id') as count ")->from('sp_topic spft')>where('spft.formid',$id)->get(); 
    $resultq2[$i]['count'] = $q1->row_object(); 
    $i++; 
} 
$data['resultq2'] = $resultq2; 
$this->load->view('myview', $data,true); 

OR

您可以使用array_merge

$data = array_merge($resultq1, $resultq2); 

然後在MyView的你會得到兩個變量$ resultq1和$ resultq2結果。

您可以通過$ data ['variable_name']將任意數量的變量從控制器傳遞給視圖文件,並且它可以像視圖文件中的簡單變量$ variable_name一樣檢索。

一些示例鏈接可能幫助: - Passing 2 types of array variables in codeigniter view files

+0

:我怎樣才能在view.for resultq1 $ resultq2我使用的foreach(),但resultq2只有一個結果。 – Kango 2013-02-28 11:58:28

0
$data['count'] = $q1->row_object(); 

改變這個象下面這樣:

foreach($data as $rec) 
     { 
      $id = $rec['id']; // here how i catch id for each row 
      $q2 = $this->db->select("count('id') as count ")-> 
      from('sp_topic spft')->where('spft.formid',$id)->get(); 
      $data[$id]['count'] = $q2->result_array(); 
     } 

$this->load->view('myview', $data,true); 
+0

你將如何檢索值,你將只有一個值在$ data ['count]這將是最後一行。 – Nishant 2013-02-28 11:32:48