溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

用PHP實現(xiàn)篩選分類列表的方法

發(fā)布時間:2020-10-16 14:27:05 來源:億速云 閱讀:197 作者:小新 欄目:編程語言

用PHP實現(xiàn)篩選分類列表的方法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

用PHP實現(xiàn)篩選分類列表的方法

    數(shù)據(jù)庫設(shè)計:

    文章表一張:art;

用PHP實現(xiàn)篩選分類列表的方法

文章表的sortid字段關(guān)聯(lián)分類表的id,type_id關(guān)聯(lián)type表字段。填充數(shù)據(jù)大致如下,如果不清楚sortid,和type_id請移步至昨天我的另一篇博客《php實現(xiàn)類似慕課網(wǎng),億速云的分類功能 》

后端代碼:

用PHP實現(xiàn)篩選分類列表的方法

//文章列表
private function artList($type,$direct,$sort,$order="Art.readtime"){
    if(!empty($type)){
        $where['type_id'] = $type;
    }
    //找的是大分類下面的小分類
    if(!empty($direct) && !empty($sort)){
        $where['Sort.id'] = $sort;
    }else{
        //查詢所有的大分類
        $sortList = M("Sort")->where("parent=0")->field("id")->select();
        //得到所有的大分類一維數(shù)組
        $list = array();
        foreach ($sortList as $item =>&$value){
            $list[] = $value['id'];
        }
        if(in_array($sort,$list)){
             //判斷穿過來的分類參數(shù)是否在大分類里面
            //拿到該大分類ID的所有子分類ID
            $idList =  D("Sort")->where("parent=$sort")->field("id")->select();
            if($idList){
                $idArr = array();
                foreach ($idList as $item =>&$value){
                    $idArr[] =  $value['id'];
                }
                $ids = implode(",",$idArr);
                unset($where);
                //判斷此時類型是否為空
                if(!empty($type)){
                    $where = "Art.sortid in ($ids) and Art.type_id=$type";
                }else{
                    $where = "Art.sortid in ($ids)";
                }
            }else{
                $where['Sort.id']= $sort;
            }
        }
    }

    $model  = $this->Model= "Art";
    $list   = D($model)
        ->where($where)
        ->field("Art.*")
        ->join("Sort on Sort.id=Art.sortid")
        ->order($order)
        ->select();
    return $list;
}
//代碼講解:
//在首頁列表多加一個參數(shù)artList,通過傳的$sort,$parent,$type三個參數(shù)來篩選對應(yīng)的文章。
//代碼部分我都進(jìn)行了詳細(xì)的注釋,請看上面寫的artList方法。

前端頁面采用的是bootstrap,昨天忘了說,頁面的代碼很簡單就是一個列表的展示,用到了thinkphp的標(biāo)簽,代碼如下:

用PHP實現(xiàn)篩選分類列表的方法

整體的效果給大家展示一下:

用PHP實現(xiàn)篩選分類列表的方法


用PHP實現(xiàn)篩選分類列表的方法

   用PHP實現(xiàn)篩選分類列表的方法

感謝各位的閱讀!看完上述內(nèi)容,你們對用PHP實現(xiàn)篩選分類列表的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI