分类相关查询(获取所有代理下的会员ID,子分类,获取父分类,下一级分类等,所有上级分类)
今天做一个多级分销代理,我这里要获取代理下的所有会员ID,下面是我所用的方法
通过代理ID来获取,这里的代理agentID可以是数组
//获取指定代理ID中的所有会员ID function getAllUserId($categoryID) { do { $ids = ''; $where['vid'] = array('in',$categoryID); $user = M('userinfo')->where($where)->select(); foreach ($user as $k=>$v){ $array[] = $v['uid']; $ids .= ',' . $v['uid']; } $ids = substr($ids, 1, strlen($ids)); $categoryID = $ids; } while (!empty($user)); $ids = implode(',', $array); return $array; //返回数组 //return $ids // 返回字符串 }
//可以用以下方法来获取子分类,父分类,下一级等,也可以用下面的方法来获取到代理下面的所有子代理,灵活应用
//获取指定分类所有父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 //返回数组
}
获取某个文章分类的 儿子 孙子 重子重孙 的 id
/**
* 获取某个文章分类的 儿子 孙子 重子重孙 的 id
* @param type $cat_id
*/
function getArticleCatGrandson ($cat_id){
$GLOBALS['ArticleCatGrandson'] = array();
$GLOBALS['cat_id_arr'] = array();
// 先把自己的id 保存起来
$GLOBALS['ArticleCatGrandson'][] = $cat_id;
// 把整张表找出来
$GLOBALS['cat_id_arr'] = M('ArticleCat')->getField('cat_id,parent_id');
// 先把所有儿子找出来
$son_id_arr = M('ArticleCat')->where("parent_id = $cat_id")->getField('cat_id',true);
foreach($son_id_arr as $k => $v)
{
getArticleCatGrandson2($v);
}
return $GLOBALS['ArticleCatGrandson'];
}
查询分类的所有上级ID
//根据PID查询上级所有分类ID function get_cate_id($pid,$menus){ $arr=array(); foreach ($menus as $key => $v) { if($v['id']==$pid){ //pid为0的是顶级分类 $arr[]=$v['id']; if ($v['pid'] > 0) { $arr = array_merge($arr,get_cate_id($v['pid'],$menus)); } } } return $arr; }

浙公网安备 33010602011771号