您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

如何将tree结果输出到文件

2024/5/1 11:12:24发布26次查看
菜鸟求助,想实现两项功能,1、将数据库中主要字段spliter_name,up_spliter两项树形结构输出到ie,在此编写了树形输出代码,请给与指教看是否符合要求,2.将数据库中这两项输出到a.txt,结果如a.txt中所示,绞尽脑汁实在力不从心,请各位大神给与指教。以下为数据库、树形输出、欲实现效果等文件,谢谢!
**************************  tb_spliter.sql  **********************
-- phpmyadmin sql dump
-- version 3.5.4
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2013 年 05 月 01 日 11:02
-- 服务器版本: 5.5.18
-- php 版本: 5.4.0rc4
set sql_mode=no_auto_value_on_zero;
set time_zone = +00:00;
/*!40101 set @old_character_set_client=@@character_set_client */;
/*!40101 set @old_character_set_results=@@character_set_results */;
/*!40101 set @old_collation_connection=@@collation_connection */;
/*!40101 set names utf8 */;
--
-- 数据库: `oa`
--
-- --------------------------------------------------------
--
-- 表的结构 `tb_spliter`
--
create table if not exists `tb_spliter` (
  `id` int(11) not null auto_increment,
  `spliter_name` varchar(50) not null,
  `spliter_cap` int(4) not null,
  `spliter_city` varchar(50) not null,
  `spliter_top_device` varchar(50) not null,
  `spliter_top_cable` varchar(50) not null,
  `up_spliter` int(11) not null,
  `p_id` int(6) not null,
  `p_name` varchar(50) not null,
  `i_state` int(1) not null,
  `complet_date` datetime not null,
  `project_name` varchar(50) not null,
  `project_content` text,
  `table_type` int(1) not null,
  `relate_depart` varchar(100) not null,
  primary key (`id`)
) engine=myisam  default charset=gb2312 comment='分光器表' auto_increment=91 ;
--
-- 转存表中的数据 `tb_spliter`
--
insert into `tb_spliter` (`id`, `spliter_name`, `spliter_cap`, `spliter_city`, `spliter_top_device`, `spliter_top_cable`, `up_spliter`, `p_id`, `p_name`, `i_state`, `complet_date`, `project_name`, `project_content`, `table_type`, `relate_depart`) values
(81, 'a1', 1, 'xt', 'a', '无', 69, 217, 'hhh', 0, '2013-04-28 00:24:52', '0', '0', 1, 'qd'),
(80, 'a2', 1, 'xt', 'a', '无', 69, 217, 'hhh', 0, '2013-04-28 00:24:52', '0', '0', 1, 'qd'),
(79, 'a3', 1, 'xt', 'a', '无', 69, 217, 'hhh', 0, '2013-04-28 00:24:52', '0', '0', 1, 'qd'),
(78, 'a4', 1, 'xt', 'a', '无', 69, 217, 'hhh', 0, '2013-04-28 00:24:52', '0', '0', 1, 'qd'),
(69, 'a', 1, 'xt', '无', '无', 0, 217, 'hhh', 0, '2013-04-28 00:15:20', '0', '1', 1, 'qh'),
(82, 'b', 1, 'xt', '无', '无', 0, 217, 'hhh', 0, '2013-05-01 10:22:51', '0', '1', 3, 'qh'),
(83, 'b1', 1, 'xt', 'b', '无', 82, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh'),
(84, 'b2', 1, 'xt', 'b', '无', 82, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh'),
(85, 'b3', 1, 'xt', 'b', '无', 82, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh'),
(86, 'b4', 1, 'xt', 'b', '无', 82, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh'),
(87, 'b5', 1, 'xt', 'b', '无', 82, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh'),
(88, 'b6', 1, 'xt', 'b', '无', 82, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh'),
(89, 'b61', 1, 'xt', 'b', '无', 88, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh'),
(90, 'b62', 1, 'xt', 'b', '无', 88, 217, 'hhh', 0, '2013-05-01 10:23:53', '0', '0', 3, 'qh');
/*!40101 set character_set_client=@old_character_set_client */;
/*!40101 set character_set_results=@old_character_set_results */;
/*!40101 set collation_connection=@old_collation_connection */;
********************** tree.php **********************
**********************  a.txt(想要的结果) **********************
a-->a1;
a-->a2;
a-->a3;
a-->a4;
b-->b1;
b-->b2;
b-->b3;
b-->b4;
b-->b5;
b-->b6;
b6-->b61;
b6-->b62;
回复讨论(解决方案) 基本算法 $sql = select id, up_spliter, spliter_name from tb_spliter order by 2, 1;$rs = mysql_query($sql); $res = array(); //结果数组$ind = array(); //索引数组while($row = mysql_fetch_assoc($rs)) { list($id, $pid) = array_values($row); $ind[$id] = $row; if(isset($ind[$pid])) $ind[$pid]['child'][$id] =& $ind[$id]; //构造索引 if($pid == 0) $res[$id] =& $ind[$id]; //转存根节点组}print_r($res);
array
(
    [69] => array
        (
            [id] => 69
            [up_spliter] => 0
            [spliter_name] => a
            [child] => array
                (
                    [78] => array
                        (
                            [id] => 78
                            [up_spliter] => 69
                            [spliter_name] => a4
                        )
[79] => array
                        (
                            [id] => 79
                            [up_spliter] => 69
                            [spliter_name] => a3
                        )
[80] => array
                        (
                            [id] => 80
                            [up_spliter] => 69
                            [spliter_name] => a2
                        )
[81] => array
                        (
                            [id] => 81
                            [up_spliter] => 69
                            [spliter_name] => a1
                        )
)
)
[82] => array
        (
            [id] => 82
            [up_spliter] => 0
            [spliter_name] => b
            [child] => array
                (
                    [83] => array
                        (
                            [id] => 83
                            [up_spliter] => 82
                            [spliter_name] => b1
                        )
[84] => array
                        (
                            [id] => 84
                            [up_spliter] => 82
                            [spliter_name] => b2
                        )
[85] => array
                        (
                            [id] => 85
                            [up_spliter] => 82
                            [spliter_name] => b3
                        )
[86] => array
                        (
                            [id] => 86
                            [up_spliter] => 82
                            [spliter_name] => b4
                        )
[87] => array
                        (
                            [id] => 87
                            [up_spliter] => 82
                            [spliter_name] => b5
                        )
[88] => array
                        (
                            [id] => 88
                            [up_spliter] => 82
                            [spliter_name] => b6
                            [child] => array
                                (
                                    [89] => array
                                        (
                                            [id] => 89
                                            [up_spliter] => 88
                                            [spliter_name] => b61
                                        )
[90] => array
                                        (
                                            [id] => 90
                                            [up_spliter] => 88
                                            [spliter_name] => b62
                                        )
)
)
)
)
)
是多维数组
目的在于展现层次
老大,试了老半天,遍历数组想生成 a-a1;a-a2;....如a.txt那样的结果,可还是不行,望再帮忙指点下。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product