php中常用的几种无限分类查询技术

数据库的设计 无限分类之一 已父ID实现的无限分类

//采用递归或者循环的思路
function getList($pid=0,&$result=array(),$spac=0)
{
    $spac = $spac+2;
    $sql = "select * from deepcate where pid = $pid";
    $res = mysql_query($sql);
    while($row=mysql_fetch_assoc($res))
    {
        $row['catename'] = str_repeat(' ',$spac) . '|--' . $row['catename'];
        $result[] = $row;
        getList($row['id'],$result,$spac);
    }
    return $result;
}
$rs = getList();
print_r($rs);
}

全路径无限分类

全路径无限分类技术:用一個字段記錄所有子分類id

全路径无限分类的优点在于 不需要递归 关键SQL语句是: $sql = 'select id,name,path,concat(path,"-",id) as fulpath from goods order by fulpath asc';

function likedate($path="")
{
    $sql ="select id,name,path,concat(path,"-",id) as fulpath from goods order by fulpath asc";
    $res=mysql_query($sql);
    $result = array();
    while($row = mysql_fetch_assoc($res))
    {
       $deep = count(explode(',',trim($row['fullpath'],',')));
       $row['catename] = str_repeat('  ',$deep).'|--'.$row['catename'];
       $result[]=$row;
           
    }
    return $result; 
}

转载于:https://my.oschina.net/leolee2356/blog/637220

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值