//獲取指定分類的所有子分類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,值為分類名的,很好做面包屑導航。
今兒寫出來也算是溫習一遍啦!!
