php 遍历树,子节点可以有多个父节点,请各位大神指点
php 遍历 多个父节点
我希望展示父子关系,一个父节点可以有多个子节点,一个子节点可以有多个父节点,由于一直运行不通过,也不知道自己写的函数是不是正确的,不好意思啊$result = array(); /*Parse error: syntax error, unexpected '=', expecting ',' or ';' *//*我本来希望这个是个全局的数组,但是上网查了一下,发现现在不可以了,不知道各位大神有没有什么好的方法,小弟在此谢过啦*/$result[0] = mysql_query("select cID,number,isbasicpart from relationship where pID='{$id}'");/*cID为子节点号,isbasicpart为是否为叶节点,number为父子间的数量*/echo "<table cellpadding='0' cellspacing='0' border='0'>"; echo "<tr> <td> {$id}";$i=0; function buildtree($i){ while($row = mysql_fetch_array($result[$i])){ if($row['isbasicpart']==1) echo "<td>'--'<td>{$row['cID']}<td>'('<td> {$row['number']}<td>')'</tr>";else { echo "<td>'--'<td>{$row['cID']}<td>'('<td> {$row['number']}<td>')'"; $i=$i+1;$sql="select cID,number,isbasicpart from relationship where pID='{$row['cID']}'"; $result[$i]=mysql_query($sql); buildtree($i);}} echo '</table>';} buildtree(0);}
回复讨论(解决方案)
一个父节点可以有多个子节点,一个子节点可以有多个父节点
这不叫树,叫网啊
你这个是多对多。。。。
这个代码自己看这不晕吗?
13 行处加上 global $result;
函数里面多个 td 标记未封闭
函数会有多个 table 闭标记产生,但只有一个 table 开标记
一个父节点可以有多个子节点,一个子节点可以有多个父节点
这不叫树,叫网啊
感谢提醒:)
你这个是多对多。。。。
感谢提醒:)
13 行处加上 global $result;
函数里面多个 td 标记未封闭
函数会有多个 table 闭标记产生,但只有一个 table 开标记
非常非常感谢,虽然还有问题,但是离目标更近了一步。我是刚开始学php语言,楼上说我写的代码不是很好,我想请问一下是不是考虑问题的思路不对呢,还是代码写的不规范。我觉得有时候想不出什么好算法,这是因为编程少么。是不是要多看书,经典的算法是不是要背下来呢?再次感谢您的回答,谢谢!
你是递归查询,本身没有问题
注意查询键是否正确就可以了
你用表格输出结果,如果标记不配套,正确的查询结果也会产生混乱的结果
建议先不要表格,先把数据弄对了
多看 (源代码,这个关键是看设计思路,至于算法上,基础web上通常需求不多,不过深入还是好的,能写出比较酷的代码,重要的还是设计框架和模式) 多写 (参照看的好的源代码的设计思路和代码规范)
然后就是没事看看书 , 多方面的 ,这样知识没有短板,就能逐渐有自己的知识体系
你是递归查询,本身没有问题
注意查询键是否正确就可以了
你用表格输出结果,如果标记不配套,正确的查询结果也会产生混乱的结果
建议先不要表格,先把数据弄对了
非常感谢!
多看 (源代码,这个关键是看设计思路,至于算法上,基础web上通常需求不多,不过深入还是好的,能写出比较酷的代码,重要的还是设计框架和模式) 多写 (参照看的好的源代码的设计思路和代码规范)
然后就是没事看看书 , 多方面的 ,这样知识没有短板,就能逐渐有自己的知识体系
非常感谢,会努力的,也祝你更好:)
多看 (源代码,这个关键是看设计思路,至于算法上,基础web上通常需求不多,不过深入还是好的,能写出比较酷的代码,重要的还是设计框架和模式) 多写 (参照看的好的源代码的设计思路和代码规范)
然后就是没事看看书 , 多方面的 ,这样知识没有短板,就能逐渐有自己的知识体系
还想再问一句,上哪里找优秀的源代码呢?有没有什么好的书或网站呢,或者某牛人的代码很好?
一个父节点可以有多个子节点,一个子节点可以有多个父节点
这不叫树,叫网啊 这个回答经典,哪有lz这样子的树啊!你的数据结构没有搞清楚,怎么循环输出啊!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...
