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