|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?递归 树型服装论坛递归减速
普通的服装论坛都递归全部表
假如仅递归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.本文无版权回护,接待随便修正转载
用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。 |
|