2013-02-28 125 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