Maison > développement back-end > tutoriel php > Utiliser PHP pour implémenter le filtrage de la liste de classification

Utiliser PHP pour implémenter le filtrage de la liste de classification

little bottle
Libérer: 2023-04-06 10:04:01
avant
7846 Les gens l'ont consulté

Dans cet article, l'éditeur partagera avec vous comment utiliser PHP pour filtrer et classer les listes. Il a une certaine valeur de référence. Les amis dans le besoin peuvent en apprendre davantage.

Conception de la base de données :

Tableau des articles : art;

Le champ sortd de la table article est associé à l'identifiant de la table de classification, et type_id est associé au champ de la table type. Les données remplies sont à peu près les suivantes. Si vous ne connaissez pas le sortd et le type_id, veuillez consulter mon autre blog d'hier "php implémente des fonctions de classification similaires à MOOC.com et au site Web chinois php"

Retour- code de fin :

//文章列表
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方法。
Copier après la connexion

La page front-end utilise bootstrap. J'ai oublié de le mentionner hier. Le code de la page est très simple, juste un affichage de liste, en utilisant les balises thinkphp. Le code est le suivant :

Laissez-moi vous montrer l'effet global :

<br>
Copier après la connexion

 

Tutoriels associés : PHP tutoriel vidéo

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal