我只使用控制器和視圖。
使用以下代碼我顯示帖子和帖子有回覆。
我用下面的控制器和查看來顯示帖子和回覆。如何將遞歸函數的結果傳遞到查看
通過使用查詢1我從帖子表中選擇帖子作爲主題ID(例如,主題ID = 34)並使用此獲得帖子ID 30和31。
通過使用查詢2我從回覆表中選擇每個帖子ID的回覆。
說具有響應ID 1和
交ID 31交ID 30通過使用第二for循環我正在選擇具有響應ID 2.
如果任何答覆使用PARENT_ID柱從回覆表具有哪吒答覆。(使用遞歸調用以showreply()函數)
我卡在我如何通過遞歸函數showreply()在視圖中的結果。
通過使用我的代碼DISPLY:
後30
---爲崗位30
後31
第一個回覆---爲崗位31
答覆,但我想告訴喜歡。
後30
---爲崗位30
第一個回覆---回覆到第一個回覆
發佈31
---爲崗位31
第一個回覆---回答第一個答覆
我已經使用遞歸函數調用來獲得答覆使用父母的ID回覆,但我沒有得到如何通過這個查看。
控制器:答覆表
<?php
public function viewpost()
{
//Query 1
$topicid = trim($this->input->get('topicid'));
$q =$this->db->select(array(
'fp.id as id',
'fp.postdata',
'fp.topicid'))
->from('forum_post AS fp')
->where('fp.topicid',$topicid)
->order_by('fp.id DESC')->limit(0,10)->get();
$resultq1 = $q->result_array();
$data['resultq1'] = $resultq1;
//$data['resultq1'] = $res;
$resultq2 = array();
foreach ($resultq1 as $rec)
{
//Query 2
$postid = $rec['id'];
$q1 =$this->db->select(array(
'fr.id as id',
'fr.reply_data'))
->from('forum_reply AS fr')
->where('fr.postid',$postid)
->order_by('fr.id ')->get();
$resultq2[$postid] = $q1->result_array();
$data["resultq2"][$postid] = $resultq2[$postid];
foreach($q1->result_array() as $row1)
{
//second for loop
$reply_id = $row1['id'];
$resultq3[$reply_id] = $this->showreply($reply_id); // call to function
$data["resultq3"] = $resultq3[$reply_id];
}//inner for loop
} //outer for loop
$this->load->view('viewpost',$data);
}
public function showreply($reply_id)
{
$reply_id1 = $reply_id;
$q1 =$this->db->select(array(
'fr.id as id',
'fr.reply_data',
'fr.parent_id'))
->from('forum_reply AS fr')
->where('fr.parent_id',$reply_id1)
->order_by('fr.id ')->get();
//print $this->db->last_query();
$resultq4[$reply_id1] = $q1->result_array();
$data["resultq4"]= $resultq4[$reply_id1];
$i=0;
foreach($q1->result_array() as $row4)
{
print_r($q1->result_array());
echo "id".$id = $row4['id'];
$parent_id = $row4['parent_id'];
if($parent_id!=0)
{
//$data['nested'][$i] = $q1->result_array();
$this->showreply($id); //recursive call to function
$i++;
}
}
return $resultq4;
}
?>
表結構:
Rep_id rep_text post_id Parent_ID
-------------------------------------------------------------------------
1 Reply for post 30 30 null
2 Reply for post 31 31 null
3 reply to Rep_id 1 null 1
4 Rep_id 3 have Rep_id 4 null 3
5 Reply for post 31 null 2
6 Reply for Rep_id 5 null 5
----------------------------------------------------------------------------
郵政表:
post_id topic id post_title post_desc
-----------------------------------------
30 34 xyz sssss
31 34 pqr tyyyu
----------------------------------------
* 查看: *
<div>
<?php foreach($resultq1 as $row)
{ ?>
<ul>
<li></li> // used to display post
</ul>
<?php foreach($resultq2 as $rows)
{
foreach($rows as $row1)
{
if($row['id']==$row1['postid'])
{ ?>
<ul>
<li></li> // used to display reyly for post
</ul>
<?php foreach($resultq3 as $rows)
{
foreach($rows as $row2)
{
if($row1['id']==$row2['parent_id'])
{ ?>
<ul>
<li></li> // used to display reply for reply
</ul>
<?php
}//if
} //inner for $row2
} // outr for $resultq3
} //if
} //inner for of $row1
}//outer for $resultq2
} ?>
</div>
你能更清楚嗎? – 2013-03-23 04:44:50
只會有4個回覆..? – 2013-03-23 05:00:12
查看我的編輯問題 – Kango 2013-03-27 05:55:46