PHP网页编程之php:树形布局的算法 3
多个成员之间重复做相同的工作,很容易因为交流沟通的时候没有进行一致性的文档要求而出现不明错误,严重影响开发进度,导致在预定时间内无法完成该项目或者完成的项目跟原先计划所要实现的项目功能不符合。 那末关于如许的布局咱们该若何增添,更新和删除一个节点呢? 增添一个节点普通有两种办法:保存原本的name 和parent布局,用老办法向数据中添加数据,每增添一条数据今后利用rebuild_tree函数对全部布局从头停止一次编号。
效力更高的举措是改动一切位于新节点右边的数值。举例来讲:咱们想增添一种新的生果"Strawberry"(草莓)它将成为"Red"节点的最初一个子节点。起首咱们需求为它腾出一些空间。"Red"的右值应该从6改成8,"Yellow 7-10 "的摆布值则应该改成 9-12。 顺次类推咱们可以得知,假如要给新的值腾出空间需求给一切摆布值大于5的节点 (5 是"Red"最初一个子节点的右值) 加上2。 所以咱们如许停止数据库操作:
UPDATE tree SET rgt=rgt+2 WHERE rgt>5;
UPDATE tree SET lft=lft+2 WHERE lft>5;
如许就为新拔出的值腾出了空间,如今可以在腾出的空间里创立一个新的数据节点了, 它的摆布值分离是6和7
INSERT INTO tree SET lft=6, rgt=7, name='Strawberry';
再做一次查询看看吧!怎样?很快吧。
好了,如今你可以用两种分歧的办法设计你的多级数据库布局了,采取何种体例完整取决于你团体的判别,然而关于条理多半量大的布局我更喜好第二种办法。假如查询量较小然而需求频仍添加和更新的数据,则第一种办法更加简捷。
别的,假如数据库撑持的话 你还可以将 rebuild_tree() 和 腾出空间的操作写成数据库真个触发器函数, 在拔出和更新的时分主动履行, 如许可以失掉更好的运转效力, 并且你添加新节点的SQL语句会变得加倍复杂。
类递归法
Posted by 访客 on 2004, May 31 - 9:18am.
我用类 递归法 写了段法式,跟文章中的递归不完整一样
正筹办移植到 xoops 中:
http://dev.xoops.org/modules/xfmod/project/?ulink
已呈现内存溢呈现象
不外筹办持续采取递归法,只是需求持续改善
但愿无机会跟列位会商cms
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 爱上php,他也会爱上你。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 当然这种网站的会员费就几十块钱。
页:
[1]
2