//获取指定分类的所有子分类ID号 function getAllChildcateIds($categoryID) { //初始化ID数组 $array[] = $categoryID; do { $ids = ''; $where['pid'] = array('in',$categoryID); $cate = M('cate')->where($where)->select(); foreach ($cate as $k=>$v) { $array[] = $v['id']; $ids .= ',' . $v['id']; } $ids = substr($ids, 1, strlen($ids)); $categoryID = $ids; } while (!empty($cate)); $ids = implode(',', $array); return $ids; // 返回字符串 //return $array //返回数组 }
//获取指定分类所有父ID号 function getAllFcateIds($categoryID) { //初始化ID数组 $array[] = $categoryID; do { $ids = ''; $where['id'] = array('in',$categoryID); $cate = M('cate')->where($where)->select(); echo M('cate')->_sql(); foreach ($cate as $v) { $array[] = $v['pid']; $ids .= ',' . $v['pid']; } $ids = substr($ids, 1, strlen($ids)); $categoryID = $ids; } while (!empty($cate)); $ids = implode(',', $array); return $ids; // 返回字符串 //return $array //返回数组 }
//获取指定分类的所有子分类 键为ID,值为分类名 function getCateKv($categoryID) { //初始化ID数组,赋值当前分类 $array[] = M('cate')->where("id={$categoryID}")->getField("cateName"); do { $ids = ''; $where['pid'] = array('in',$categoryID); $cate = M('cate')->where($where)->select(); echo M('cate')->_sql(); foreach ($cate as $k=>$v) { $array[$v['id']] = $v['cateName']; $ids .= ',' . $v['id']; } $ids = substr($ids, 1, strlen($ids)); $categoryID = $ids; } while (!empty($cate)); $ids = implode(',', $array); //return $ids; // 返回字符串 return $array //返回数组 }
方法都是通用的,不只在thinkphp框架中能用,只是数据库查询方法不一样。
像这种方法getCateKv()返回数组形式,键为分类ID,值为分类名的,很好做面包屑导航。
今儿写出来也算是温习一遍啦!!