这个问题比较难,无级分类倒循环 最近在做一个项目,是要修获取分类的,这个可就难为死我了,大家看下图吧!条件是:知道 三级别分类的type_id = 64最后要得到的结果是: 顶级分类一-》二级别分类-》三级别分类 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $s = $this->Marticle_typeModel->getOneById($ArticleRs[type_id]);//文章所属分类复制代码我来说明下我的这个方法,$ArticleRs[type_id])就是type_id,假设他是64getOneById()方法就是获取一条数据,查询type_id等于64的信息,读取出来请问如何得到结果是这样的文字呢:顶级分类一-》二级别分类-》三级别分类(64) 这个很简单做个递归,如果parent_id!=0继续上查 这种结合设计的的确很烦琐,lz看看这个sqlselect *from 分类表 top , 分类表 mid , 分类表 botwhere -- 确定表关系 bot.parent_id = mid.type_id and mid.parent_id = top.type_id -- 确定顶部分类特征 and top.parent_id = '0' 先找一級分類,再由一級分類的ID找二級分類,由二級分類ID找三級分類 $array = array(); find_parent($array, 64); function find_parent(&$parent_array, $id) { $sql = mysql_query("select * from TABLE where type_id ='" . $id . "'"); if(mysql_numrows($sql) > 0) { while ($get_parent = mysql_fetch_array($sql)) echo $get_parent['parent_id']; find_parent($parent_array, $get_parent['parent_id']); } }大概的思路是这样,没测试过~~ 循环查找,直到parent_id为0建议添加一个层次的字段 level这样很方便统计查询每次都循环查找效率很低 smarty分配变量问题 关于 array_pad函数的疑问 PHP odbc方式 废除Smarty 有没有意见 PHP分页 最近学习zendframework遇到的问题! 北京新公司招技术经理(PHP+MYSQL技术) 如何把php中的数组变量传给javascript函数,急 关于客户端验证库中是否已经存在此记录的问题 php网站后台建设(验证 验证码)有错误,求帮忙修改 smarty时间问题 外包 注册与登陆
复制代码我来说明下我的这个方法,$ArticleRs[type_id])就是type_id,假设他是64getOneById()方法就是获取一条数据,查询type_id等于64的信息,读取出来请问如何得到结果是这样的文字呢:
顶级分类一-》二级别分类-》三级别分类(64)
做个递归,如果parent_id!=0
继续上查
lz看看这个sql
select
*
from
分类表 top
, 分类表 mid
, 分类表 bot
where
-- 确定表关系
bot.parent_id = mid.type_id
and mid.parent_id = top.type_id
-- 确定顶部分类特征
and top.parent_id = '0'
$array = array();
find_parent($array, 64);
function find_parent(&$parent_array, $id) {
$sql = mysql_query("select * from TABLE where type_id ='" . $id . "'");
if(mysql_numrows($sql) > 0) {
while ($get_parent = mysql_fetch_array($sql))
echo $get_parent['parent_id'];
find_parent($parent_array, $get_parent['parent_id']);
}
}
大概的思路是这样,没测试过~~
这样很方便统计查询每次都循环查找效率很低