php 三级分类问题(非递归方式) php 三级分类问题(非递归方式),怎么从数据库中取出?怎么smarty成一下形式?日志 --我的日志 ----我的日志1 --你的日志 ----你的日志1新闻 --国内新闻 ----国内新闻1 --国际新闻 ----国际新闻1数据库结构如下: 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 smarty不会非递归方式就是循环两次:1.循环读出(可能要先按id排序一下),制作一个字串,例如newid,把id用连接符拼接起来2.对newid排序3.对排序后的newid循环输出array("1"=>"新闻",……"1-3"=>"国内新闻","1-3-11"=>"国内新闻1",……"1-3-xx"=>"国内新闻2",……)* 因为都是不重复的id,拼接的newid肯定是不重复的,用正则检查已生成newid最后的所有数字和fid相同就拼接上去* newid数组用ksort排序就行* 正则提取newid的\D就是层数 那你通过建立数据库表来实现吧,建立3张表,只要写个sql视图,就可以。 就如楼主的数据库结构,取数据可以直接按照不同等级,一级一级的取不就行了。$grade_1 = 'select * from cate where fid = 0;';//抽取$grade_1各记录的ID,得到$grade_2的fid-- $grade_2_fids$grade_2 = 'select * from cate where fid in (' . implode(',', $grade_2_fids) .')';同样的方法,得到第三级数据 麻不麻烦其实是思路问题这种写法,只要读数据完成后,后面用■FilterIterator■ArrayIterator ■RegexIterator 等等去做查询,其实也就几行代码,正则迭代器估计最多五行就能查到任意一个数据另一种思路是输出为xml树,然后用xpath查找这个问题包含三个步骤:读数据、转换数据形式、数据再利用递归是把前两个步骤简单化,在再利用的步骤上下功夫我是把中间步骤上下功夫,把再利用简单化还有一种思路就是读数据下功夫,转换、再利用简单化,但这种思路基本上处于现行硬件的困扰而摒弃——如果硬件足够强,完全可以SQL搞定人类的发展其实是个什么概念?说简单点就是不断的把物质的一种形态转换为另一种形态以符合自身需要,并不断寻求新的转换形式编程又是个什么概念?其实就是把数据从一种表现方式转换为另一种表现方式以符合自身需求(是否)麻烦归根到底是(是否)符合自身需求的问题而已我只是表达一种思路,你觉得不合适就继续开发新思路就行了,毕竟我不是你,不能完全满足你的数据表达形式需求的 php中关于“红点”的问题。。。 PHP 提交页面后,所提交的中文为乱码,请问哪位有好的解决办法 请教一下,我想在每天零点自动运行一条命令,怎么办呢? PHP APACHE 可以做到定时执行个PHP文件吗? 求一段JS 关于验证的 PHP curl 模拟登陆 获取cookie求助 高手回答,php使用sql server 2000时,text字段怎么只能保存4k 疯掉了,生成2个session文件 PHP网站打开后只显示ZEND!!服务器上的其它PHP站还能用!!在线等!! 请问能用php实现抽奖时那个数字的滚动效果吗? 这个代码有问题吗? 为什么老是创建不了数据库表? 一个对象能否放入数组
非递归方式就是循环两次:
1.循环读出(可能要先按id排序一下),制作一个字串,例如newid,把id用连接符拼接起来
2.对newid排序
3.对排序后的newid循环输出array(
"1"=>"新闻",
……
"1-3"=>"国内新闻",
"1-3-11"=>"国内新闻1",
……
"1-3-xx"=>"国内新闻2",
……
)
* 因为都是不重复的id,拼接的newid肯定是不重复的,用正则检查已生成newid最后的所有数字和fid相同就拼接上去
* newid数组用ksort排序就行
* 正则提取newid的\D就是层数
$grade_1 = 'select * from cate where fid = 0;';
//抽取$grade_1各记录的ID,得到$grade_2的fid-- $grade_2_fids
$grade_2 = 'select * from cate where fid in (' . implode(',', $grade_2_fids) .')';
同样的方法,得到第三级数据
■FilterIterator
■ArrayIterator
■RegexIterator
等等去做查询,其实也就几行代码,正则迭代器估计最多五行就能查到任意一个数据另一种思路是输出为xml树,然后用xpath查找这个问题包含三个步骤:读数据、转换数据形式、数据再利用
递归是把前两个步骤简单化,在再利用的步骤上下功夫
我是把中间步骤上下功夫,把再利用简单化
还有一种思路就是读数据下功夫,转换、再利用简单化,但这种思路基本上处于现行硬件的困扰而摒弃——
如果硬件足够强,完全可以SQL搞定
人类的发展其实是个什么概念?说简单点就是不断的把物质的一种形态转换为另一种形态以符合自身需要,并不断寻求新的转换形式编程又是个什么概念?其实就是把数据从一种表现方式转换为另一种表现方式以符合自身需求
(是否)麻烦归根到底是(是否)符合自身需求的问题而已
我只是表达一种思路,你觉得不合适就继续开发新思路就行了,毕竟我不是你,不能完全满足你的数据表达形式需求的