Sto usando solo controller e view.
utilizzando il seguente codice sto visualizzando post e posta avendo risposta.
Ho usato il seguente controller e la vista per visualizzare posta e risposta.come passare il risultato della funzione ricorsiva per visualizzare
utilizzando Query 1 Sto selezionando post per il tema id. (Eg.topic id = 34) dalla tabella posta e utilizzando questo ottenere posta id 30 e 31.
utilizzando Query 2 sto selezionando risposta per ogni ID post dal tavolo risposta.
dicono posta id 30 avendo risposta id 1 e
posta id 31 avendo risposta id 2.
utilizzando 2 ° ciclo for sto selezionando se alcuna risposta ha anothr risposta tramite colonna parent_id dalla tabella risposta. (Utilizzare chiamata ricorsiva a showreply() funzione)
mi sono bloccato nel modo in cui passo il risultato di funzione ricorsiva showreply() in vista.
Utilizzando il mio codice ho disply:
Messaggio 30
--- prima risposta per la post 30
dopo 31
--- rispondere per il post 31
ma io voglio mostrare come .
Messaggio 30
--- prima risposta per la post 30
--- risposta alla prima risposta
inviare 31
--- prima risposta per la post 31
--- risposta alla prima risposta
Ho usato la chiamata di funzione ricorsiva per ottenere la risposta per risposta tramite il genitore id ma non sono sempre come posso passare questo per visualizzare.
Controller: Struttura
<?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;
}
?>
Tavolo per la risposta Tabella:
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
----------------------------------------------------------------------------
Messaggio Tabella:
post_id topic id post_title post_desc
-----------------------------------------
30 34 xyz sssss
31 34 pqr tyyyu
----------------------------------------
* Vista: *
<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>
puoi essere più chiaro? –
ci saranno solo 4 risposte ..? –
Vedi la mia domanda modificata – Kango