将两个查询结果传递到codeigniter中查看

将两个查询结果传递到codeigniter中查看,codeigniter,Codeigniter,我有两个查询$q1和$q2。 从查询1中,我得到多条记录,每条记录都有id,我希望在where条件下使用此id进行第二次查询 //Query 1 $q1 = $this->db->select(array( 'spf.id as id' , 'spf.name', 'spf.add

我有两个查询$q1和$q2。 从查询1中,我得到多条记录,每条记录都有id,我希望在where条件下使用此id进行第二次查询

//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);
我在控制器里做这个。 我尝试了以下代码。 在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);
编辑:

这是我的观点。
我已经尝试了最后一个答案,我使用foreach得到了resultq1,但我怎样才能得到resultq2的结果呢。
细节
答复
开始于
创建于
----//这里我想使用resultq2

你可以这样做

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

您可以使用array\u merge

然后在myview中,您将在变量$resultq1和$resultq2中获得结果

您可以通过$data['variable_name']将任意数量的变量从控制器传递到视图文件,并且可以像简单变量$variable_name一样在视图文件中检索该变量

一些可能有帮助的示例链接:-

更改如下:

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

如何检索这些值,u将在$data['count]中只有一个值,这将是最后一行中的一个值。注意:如何在视图中获取$resultq2。对于resultq1,我使用foreach()但resultq2只有一个结果。
$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);