ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> PHP技术
树型论坛递归加速
树型论坛递归加速

一般的论坛都递归整个表

如果仅递归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) //将游标移动到指定位置

       bbsreply=mysql_fetch_array($mysqlres) //得到此游标位置帖子的内容

       if(bbsreply[‘fatherid’]==$id)

       {

         //判断此帖的父帖id是否为给定的id

         //如果是则缩回显示

         dispreplybbs($bbsreply[‘id’],$mysqlres)//并且再递归搜索其有没有子帖

         //如果不是则判断下一条

       }

     }       //循环所有result

   }



    

如有异议,请回帖或mailto: chensiping@163.net.本文无版权保护,欢迎随意修改转载




 
 
本站关键词:
| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|| 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀常平镇 桥头镇 横沥镇|东坑镇 企石镇 石排镇|茶山镇 莞城 东城|万江 南城|东莞网络服务|东莞软件开发|东莞软件设计|东莞主页设计|东莞公司主页|东莞建站套餐|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有