关于递归无限分类的问题。 PHP小白,请问各位大牛,。这个while里面的fetch_assoc;是查到数据库里所有符合条件的记录后才停止while循环吗?手册上说fetch_assoc每次只查询一条记录,如果while里面再调用loopMore()这个函数本身,那么又重新开始了,那么fetch不是只能查到一条记录就重新开始再一次执行函数了,那样不是不完整吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般的做法是先取出所有的表数据$res,loopMore函数传参时,传$pid,$res,$space。你写的sql语句里是pid = {$pid},那么取出的本来就是一条数据。但是每次函数return的$res,你没有用array_merge进行合并,结果上肯定是有问题的 这个看起来没有错fetch_assoc是一次读取一行,并且指针后移一位,到最后就为空了,while的判断就是false就跳出循环A、你先按最后一级来考虑,即末尾没有下级了那么进入下一级的loopmore后其实sql是空数据,于是直接返回(loopmore怎么没有返回值啊?)B、然后现在考虑包含下一级的情况1,2,21,22,3fetch到了2的时候,进入loopmore这个时候sql查出来有21、22,于是继续这一级别的while到21,而21、22其实是没有下一级的,这实际上回到了情况A,于是按照情况A处理,loopmore处理完后,继续while循环,到22,然后继续C、对于多级分类,按照B算,如果有下一级,再按照B算,没有下一级,就按照A算。即你的sql实际查询输出是:第一次1、2、3第二次 null(1)第3次21、224: null(3)但是你执行的顺序却是:1(、null)、2、21、22、3(、null) 外层不是有while循环吗,怎么会不完整呢。 PHP如何判断服务器是APACHE还是IIS 为什么datetime类型的值不能修改为null? multi_query帮忙看看 如何安装fastcgi? how to compile PDFlib 想下載東西,沒分了.怎麼辦? 怎么访问根目录以外的目录? 请问大家一个问题哈,<a href="a.rar">下载</a> 请高手帮忙看一段代码 关于curl抓取网页,抓取到页面没有数据是怎么回事啊?求指导 php和js传值 为什么我这个运行不了呢? 求正则表达式
你写的sql语句里是pid = {$pid},那么取出的本来就是一条数据。但是每次函数return的$res,你没有用array_merge进行合并,结果上肯定是有问题的
fetch_assoc是一次读取一行,并且指针后移一位,到最后就为空了,while的判断就是false就跳出循环
A、你先按最后一级来考虑,即末尾没有下级了
那么进入下一级的loopmore后其实sql是空数据,于是直接返回
(loopmore怎么没有返回值啊?)
B、然后现在考虑包含下一级的情况
1,2,21,22,3
fetch到了2的时候,进入loopmore
这个时候sql查出来有21、22,于是继续这一级别的while到21,而21、22其实是没有下一级的,这实际上回到了情况A,于是按照情况A处理,loopmore处理完后,继续while循环,到22,然后继续
C、对于多级分类,按照B算,如果有下一级,再按照B算,没有下一级,就按照A算。即你的sql实际查询输出是:
第一次1、2、3
第二次 null(1)
第3次21、22
4: null(3)
但是
你执行的顺序却是:1(、null)、2、21、22、3(、null)