この記事では、編集者が PHP を使用してリストをフィルタリングおよび分類する方法を共有します。これには一定の参考価値があります。困っている友人はそれについて学ぶことができます。お役に立てれば幸いです。
## データベース設計: 記事テーブル: art;## sortid記事テーブルのフィールドは分類テーブルの id に関連付けられ、type_id はタイプ テーブルのフィールドに関連付けられます。埋め込まれたデータはおおよそ次のとおりです。sortid と type_id がわからない場合は、昨日の別のブログ「MOOC.com と php の中国語 Web サイトに似た分類機能を 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方法。
全体的な効果を見てみましょう:
<br>
関連チュートリアル:
PHP ビデオ チュートリアル
以上がPHP を使用してフィルタリング分類リストを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。