数据库设计:
文章表一张:art;
文章表的sortid字段关联分类表的id,type_id关联type表字段。填充数据大致如下,如果不清楚sortid,和type_id请移步至昨天我的另一篇博客《php实现类似慕课网,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 = $html' target='_blank'>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视频教程
以上就是用PHP实现筛选分类列表的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答