LINUX环境中用PHP构建网站:用递归函数写论坛
作者:0519bobo_724 | 来源:互联网 | 2017-06-25 19:48
文章标题:LINUX环境中用PHP构建网站:用递归函数写论坛。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
论坛的实现方法较为复杂,只要把它分析一下,问题就迎刃而解了,先看看论坛的实现,有人发贴,然后有人跟贴,这个关系形成了一种父子的关联关系,一般写个实用论坛,只要解决了这个子父关系,论坛即已成形.
来看看完成论坛的方法,首先得用数据库来记载这种子父的关系,一般的方法是用无重复的 id 号来完成的,记载父贴的 id 号字段一般用 "parentid" 来记载,子贴存储时记载父贴的 id 号,而父贴的 parentid 则一率为 0,看看数据库的记载形式:
父1:id:1 | parentid:0
子1:id:2 | parentid:1
子子1:id:3 | parentid:2
父2:id:4 | parentid:0
子2:id:5 | parentid:4
子2:id:6 | parentid:4
......
如此数据库记载的子父关系已确立,接着来分析 php 是如何来实现这种父子关系的确立并加入到数据库的,首先用户想发言时,他的贴为一个父贴,因此 php 可将 parentid 设置为 0,当有用户跟贴时,php 将该用户所跟的父贴的 id 号附值给 parentid,这样 php 就完成了,子父关系的确立.
实现了子父关系的确立和存储,接下来就是把这种关系显示出来,这儿就需要用到递归函数来实现了,看下面的代码:
.....
$result=mysql_query("select * from table where parentid=0");
$num=mysql_numrows($result);
if (!empty($num)) {
for ($i=0;$i<$num;$i++) {
$parentid=mysql_result($result,$i,"id");
function showchild($parentid) {
//加入 ul 控制层进
$result=mysql_query("select * from table where parentid=$parentid");
$numb=mysql_numrows($result);
if (!empty($numb)) {
for ($i=0;$i<$numb;$i++) {
....
$parentid=mysql_result($result,$i,"id");
....
showchild($parentid);
}
....
....
}
....
....
}
showchild($parentid);
....
....
}
....
....
}
上面这段代码就是利用递归函数来实现论坛的方法,当然这个论坛是极其原始的,在不同部分加上功能代码,就能够使这个论坛逐渐强大起来,有兴趣的读者不妨自己动手试试.
推荐阅读
-
本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ...
[详细]
蜡笔小新 2024-12-28 12:22:34
-
探讨一个老旧 PHP MySQL 系统中,时间戳字段不定期出现异常值的问题及其可能原因。 ...
[详细]
蜡笔小新 2024-12-28 11:46:54
-
-
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
-
本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ...
[详细]
蜡笔小新 2024-12-27 19:05:41
-
2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ...
[详细]
蜡笔小新 2024-12-27 17:49:56
-
本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ...
[详细]
蜡笔小新 2024-12-27 17:40:42
-
本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ...
[详细]
蜡笔小新 2024-12-27 17:31:41
-
本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ...
[详细]
蜡笔小新 2024-12-27 15:48:52
-
在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ...
[详细]
蜡笔小新 2024-12-27 14:49:56
-
本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ...
[详细]
蜡笔小新 2024-12-27 14:09:23
-
本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ...
[详细]
蜡笔小新 2024-12-27 10:36:44
-
本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ...
[详细]
蜡笔小新 2024-12-26 20:16:36
-
本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ...
[详细]
蜡笔小新 2024-12-26 16:36:34
-
本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ...
[详细]
蜡笔小新 2024-12-27 16:20:10
-
本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ...
[详细]
蜡笔小新 2024-12-27 14:21:10
-
0519bobo_724
这个家伙很懒,什么也没留下!