您好,登錄后才能下訂單哦!
用PHP實現篩選分類列表的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
數據庫設計:
文章表一張:art;
文章表的sortid字段關聯分類表的id,type_id關聯type表字段。填充數據大致如下,如果不清楚sortid,和type_id請移步至昨天我的另一篇博客《php實現類似慕課網,億速云的分類功能 》
后端代碼:
//文章列表 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(); //得到所有的大分類一維數組 $list = array(); foreach ($sortList as $item =>&$value){ $list[] = $value['id']; } if(in_array($sort,$list)){ //判斷穿過來的分類參數是否在大分類里面 //拿到該大分類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; } //代碼講解: //在首頁列表多加一個參數artList,通過傳的$sort,$parent,$type三個參數來篩選對應的文章。 //代碼部分我都進行了詳細的注釋,請看上面寫的artList方法。
前端頁面采用的是bootstrap,昨天忘了說,頁面的代碼很簡單就是一個列表的展示,用到了thinkphp的標簽,代碼如下:
整體的效果給大家展示一下:
感謝各位的閱讀!看完上述內容,你們對用PHP實現篩選分類列表的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。