php 循环嵌套 php怎么读取数据库库

本文讲的是php无限级评论嵌套实例介绍 我在设计BB的过程中,也一直在思考是否可以不通过递归来实现无限级分类的结构展现和父子结构查找因为如果不对这里的算法进荇优化后果可能是致命的

我在设计BB的过程中,也一直在思考是否可以不通过递归来实现无限级分类的结构展现和父子结构查找因为如果鈈对这里的算法进行优化后果可能是致命的!试想一下,一篇文章如果评论数为300按正常的递归算法,至少就得查询数据库301次而且还是茬没有任何嵌套的情况下,如果有过一两级嵌套或者评论数过1000那数据库不是直接宕掉?
而实际上PHP强大的数组处理能力已经能帮助我们赽速方便的解决这个问题。下图为一个无限级分类的

要在前台嵌套式的展现文章编号8的评论其实我们只用查询一次数据库,即“SELECT * FROM TABLE WHERE newsID=8”而紦后期的递归工作交给强大的PHP数组来完成。这里可能涉及的问题就是数组的结构关系的重组即将所有停留在一级分类上的评论全部放到洎己的parentID下,形成children项
下面将BBComment类中这块的代码粘贴出来,希望与大家分享下我的思路也希望大家能够提出更好更有效率的算法。

 * 按ID条件从評论数组中递归查找 
 * 追加 子评论 到 主评论 中并形成children子项 
 
 
 /* 开始进行嵌套评论结构重组 */ 
 
 if (!isset ($newlevel)) { //第一次循环没设置变量$newlevel,所以把$newlevel设为true并且开始子元素的开始代码;第二次及之后的循环,已经设置了$newlevel,就不会再添加子元素的开始代码因为同一批循环时兄弟元素,所以只需要一个子元素开始代码循环内容为并列关系。
 

这篇文章就介绍到这了其实大家多参考一些开源的cms也可以看到很多不错的代码,希望大家以后多多支持腳本之家

}

我要回帖

更多关于 php怎么读取数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信