教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 树型论坛递归加速

树型论坛递归加速

发布时间:2016-10-27   编辑:jiaochengji.com
教程集为您提供树型论坛递归加速等资源,欢迎您收藏本站,我们将为您提供最新的树型论坛递归加速资源
树型论坛递归加速
一般的论坛都递归整个表
如果仅递归result,那么速度会加快不少,况且访问result是访问服务器内存.
我们一般通过下面的语句使游标移动
while($row=mysql_fetch_array($res))
其原理是当mysql_fetch_array($res)每执行一次则游标自动下移,直到结束为止
但是递归result时,我们只有一个result,当游标不定时,我们无法知道当前游标记录是否符合我们的要求
php提供了一个函数让用户自己指定游标位置
bool mysql_data_seek ( resource result_identifier, int row_number)
这个函数大家应该能看懂吧
下面我来讲讲我的思路.
为实现论坛分页,表结构设计如下:
表名:newestbbs(最新帖子 以最后回复时间排序)
结构:
id 只记录根帖的id
time 如果没有回帖,则为根帖提交时间,否则为最后回帖提交时间
表名:bbs
结构:
    id 帖子本身的id
    fathered 父帖id
    rootid    根帖id
    time        发帖时间
    ……….其它field
思路:
先由newestbbs得到最新帖列表(比如每页列表20条根帖 select id from newestbbs order by time limit 页数-1,20)
得到result后从整个bbs表里得到并显示所有result的根帖
    while(bbs=mysql_fetch_array($result))
    {
        select * from bbs where rootid=bbs['id’] order by time //(由此得到第二个result,命名为res)
        $root=mysql_fetch_array(res)
        显示根帖
        dispreplybbs($root['id’],$res) //递归显示此帖所有回帖
    }
递归函数如下:
     function dispreplybbs($id,$mysqlres)
     {
     for($i=0;$i<mysql_num_rows($mysqlres);$i )
     {
    mysql_data_seek($mysqlres,$i) //将游标移动到指定位置

您可能感兴趣的文章:
树型论坛递归加速
JSP实现论坛树型结构的具体算法
jQuery树型菜单 MagicDTree
数据结构-树和二叉树(Golang)
数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树
快速开发WebUI jQuery MiniUI
php递归函数使用return问题
mysql递归查询替代函数实例
Python中的二叉排序树和平衡二叉树是什么
可拖放的树形控件 jQuery Simple Tree

[关闭]
~ ~