Verwenden Sie PHP, um eine Filterklassifizierungsliste zu implementieren

little bottle
Freigeben: 2023-04-06 10:04:01
nach vorne
7819 Leute haben es durchsucht

In diesem Artikel erklärt Ihnen der Herausgeber, wie Sie PHP zum Filtern und Klassifizieren von Listen verwenden. Ich hoffe, dass es für Sie hilfreich sein kann.

Datenbankdesign:

Artikeltabelle: Kunst;

Das sortid-Feld der Artikeltabelle ist mit der ID der Klassifizierungstabelle verknüpft, und type_id ist mit dem Typtabellenfeld verknüpft. Die ausgefüllten Daten lauten ungefähr wie folgt. Wenn Sie die Sortier- und Typ-ID nicht kennen, gehen Sie bitte zu meinem anderen Blog von gestern: „PHP implementiert Klassifizierungsfunktionen ähnlich wie MOOC.com und die chinesische PHP-Website“

Zurück- Endcode:

//文章列表
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方法。
Nach dem Login kopieren

Die Front-End-Seite verwendet Bootstrap. Ich habe gestern vergessen, es zu erwähnen, nur eine Listenanzeige mit thinkphp Tags. Der Code lautet wie folgt:

Lassen Sie mich Ihnen den Gesamteffekt zeigen:

<br>
Nach dem Login kopieren

 

Verwandte Tutorials: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP, um eine Filterklassifizierungsliste zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage