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);
....
....
}
....
....
}
上面这段代码就是利用递归函数来实现论坛的方法,当然这个论坛是极其原始的,在不同部分加上功能代码,就能够使这个论坛逐渐强大起来,有兴趣的读者不妨自己动手试试.
推荐阅读
-
本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ...
[详细]
蜡笔小新 2024-12-04 16:39:13
-
本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ...
[详细]
蜡笔小新 2024-12-04 17:35:56
-
-
本文详细介绍了在MySQL数据库中为字段添加注释的两种方法,并提供了具体的SQL语句示例,帮助开发者更好地管理和理解数据库结构。 ...
[详细]
蜡笔小新 2024-12-04 14:47:23
-
本文详细介绍了如何通过Percona插件监控MySQL 5.7数据库,包括环境准备、插件安装、配置调整及数据测试等步骤,旨在为用户提供一个高效且稳定的监控解决方案。 ...
[详细]
蜡笔小新 2024-12-04 11:50:37
-
Django的数据库1.在Django_test下的view.py里面model定义模型fromdjango.dbimportmodels#Createyourmodelshere ...
[详细]
蜡笔小新 2024-12-04 11:29:56
-
本文深入探讨了SqliLabs项目中的第38至45关,重点讲解了堆叠注入(Stacked Queries)的应用技巧及防御策略。通过实际案例分析,帮助读者理解如何利用和防范此类SQL注入攻击。 ...
[详细]
蜡笔小新 2024-12-04 11:17:35
-
对于初学者而言,无论是使用PHP还是Python编写爬虫程序,翻页功能都是一个常见的挑战。本文将详细介绍如何通过观察URL变化来实现高效翻页。 ...
[详细]
蜡笔小新 2024-12-05 10:16:18
-
本文详细介绍了 SQL 中的 CHECK 约束,包括其作用、如何在创建表和修改表时应用 CHECK 约束,以及如何删除 CHECK 约束。CHECK 约束用于确保数据库中的数据符合预定义的条件,从而提高数据的完整性和可靠性。 ...
[详细]
蜡笔小新 2024-12-05 07:43:54
-
在接手同事的项目时,发现程序虽然编译无误,但在运行时出现‘libgcc_s.so.1 must be installed for pthread_cancel to work’的错误提示。经过一系列排查与尝试,最终找到了问题的根源。 ...
[详细]
蜡笔小新 2024-12-04 20:18:38
-
本文详细介绍了如何在MySQL数据库中查询最新的单条记录,包括基本的SQL语句使用技巧以及针对特定场景的高级查询方法。 ...
[详细]
蜡笔小新 2024-12-04 19:55:34
-
经过两个月的努力,一位普通的双非本科毕业生最终成功获得了阿里巴巴的录用通知。 ...
[详细]
蜡笔小新 2024-12-04 19:44:08
-
本文详细探讨了JSP环境下数据库连接的实现方法,包括环境配置、代码示例以及常见的连接问题及其解决方案。 ...
[详细]
蜡笔小新 2024-12-04 16:25:37
-
本文探讨了在 MySQL 数据库中使用 LIKE 语句进行模糊查询并结合分页处理时可能遇到的问题,并提出了解决这些潜在陷阱的有效方法。 ...
[详细]
蜡笔小新 2024-12-04 13:34:01
-
本文详细介绍了MySQL数据库中的各种数据类型,包括整型、浮点型、字符型、文本型和日期时间型等,每种类型都有其特定的存储需求和使用场景。 ...
[详细]
蜡笔小新 2024-12-04 12:40:28
-
本文详细介绍了MySQL中REPLACE()函数的使用方法,并通过具体示例展示了如何在实际开发中利用该函数进行字符串替换操作。 ...
[详细]
蜡笔小新 2024-12-04 09:47:02
-
0519bobo_724
这个家伙很懒,什么也没留下!