Thinkphp簡單無限級分類

轉自:http://www.php1.cn/Content/Thinkphp_JianDanWuXianJiFenLei.html

松林貌似很長時間沒寫文章了。。。。

首先無限極分類的文章太多了。工作這麼長時間說實話還真沒寫過這東西。前幾天出了個需求,就是評論功能,主要是評論的回覆功能,能無限回覆。這鐵定是用無限極分類了。自己沒寫過,確實也不想寫(本人比較懶,懶得動腦子)。別人發過來幾個無限極分類的類,看了之後着實腦袋疼。松林自己網站上的功能也挺簡單的。還是自己研究寫吧,   下面數據庫結構:

 

這應該是無限極分類最簡單的數據庫結構了。

 

首先呢,這是thinkphp無限極分類,那麼咱們就按照thinkphp的結構來寫。比如你的模板顯示方法叫index(),那麼咱就在index()方法裏面寫:

$message = M('message');//評論


//有必要說下where條件,當然我這是項目裏的代碼,評論需要顯示出來當前文章的評論,這個條件就是查詢當前文章評論

public $listall = array();

$listmessage = $message->where('article_id = '.$list['artid'].'')->order('id DESC')->select(); //暫且你的表名字爲message

foreach( $listmessage as $v){
if($v['pid'] == 0){
echo $v['username']."<br />";
$this->listall[] = $v;
$this->wuxian_f($v['id'] ,$nb );
}
}

 

下面的這個就是調用的無限極分類方法:

//無限極分類測試
protected function wuxian_f( $fid ,$nb){
$message = M('message');
$hf = $message->where('pid = "'.$fid.'"')->select();
if($hf){
foreach($hf as $c){
$nb = $nb . "----";
echo  $nb.$c['username']."<br />";
$this->listall[] = $c;
$hc = $message->where('pid = "'.$c['id'].'"')->find();
if($hc){
$nb = $nb . "----";
echo $nb.$hc['username']."<br />";
$this->listall[] = $hc;
$this->wuxian_f( $hc['id'] ,$nb);


}
}
}
}

如果想去前臺遍歷的話,就把$this->assign('mess',$this->listall);  listall賦值到view頁面,然後前臺頁面循環mess就可以了。

至此無限極分類的顯示邏輯已完成了。其實無限極分類的邏輯之處都在顯示處,增加、刪除的邏輯都非常簡單,只需把pid傳到數據庫就可以了。所以我不寫了。。。。。。畢竟寫的很倉促,可能有很多不可取之處,歡迎各位朋友給松林糾正。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章