菜鸟求助,想实现两项功能,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 **********************
$filename = 'a.txt';
$fff=iconv('gb2312','utf-8',$fff);
if (!$handle = fopen($filename, 'w')) {
echo "cannot open $filename";
exit;
}
include "../conn/conn.php";
$sql="select * from tb_spliter where up_spliter = '0'";//选择出所有顶级设备
$result=mysql_query($sql,$conn);
$m=0;
while($rows=mysql_fetch_row($result)){
$sqlstr1="select * from tb_spliter where up_spliter = '".$rows[0]."'"; //判断顶级设备下的一级设备
$result1=mysql_query($sqlstr1,$conn);
$num=mysql_num_rows($result1);
if(!$num){ //如果不存在一级设备
echo "\$a=".$rows[1]." ".$m."没有下级
";
}else{
echo "\$b=".$rows[1]." ".$m."有下级
";
list_first($rows[0],$m); //list_first轮询一级设备
}
$m+=1;
}
function list_first($aa,$m){
include "../conn/conn.php";
$sql="select * from tb_spliter where up_spliter = '".$aa."'";//list_first轮询一级设备
$result = mysql_query($sql,$conn);
while($rows2 = mysql_fetch_row($result)){
$sqlstr1 = "select * from tb_spliter where up_spliter = '".$rows2[0]."'"; //判断一级设备下是否有分支设备
$result1 = mysql_query($sqlstr1,$conn);
$nu = mysql_num_rows($result1);
if(!$nu){
echo $rows2[1]." ".$m."没有下级
";
}else{
echo $rows2[1]." ".$m."有下级
";
list_first($rows2[0],$m); //list_first轮询设备
}
$m+=1;
}
}
?>
********************** 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那样的结果,可还是不行,望再帮忙指点下。

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

PHP reste important dans le processus de modernisation car il prend en charge un grand nombre de sites Web et d'applications et d'adapter les besoins de développement via des cadres. 1.Php7 améliore les performances et introduit de nouvelles fonctionnalités. 2. Des cadres modernes tels que Laravel, Symfony et Codeigniter simplifient le développement et améliorent la qualité du code. 3. L'optimisation des performances et les meilleures pratiques améliorent encore l'efficacité de l'application.

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

Le type PHP invite à améliorer la qualité et la lisibilité du code. 1) Conseils de type scalaire: Depuis PHP7.0, les types de données de base sont autorisés à être spécifiés dans les paramètres de fonction, tels que INT, Float, etc. 2) Invite de type de retour: Assurez la cohérence du type de valeur de retour de fonction. 3) Invite de type d'union: Depuis PHP8.0, plusieurs types peuvent être spécifiés dans les paramètres de fonction ou les valeurs de retour. 4) Invite de type nullable: permet d'inclure des valeurs nulles et de gérer les fonctions qui peuvent renvoyer les valeurs nulles.

Dans PHP, utilisez le mot-clé Clone pour créer une copie de l'objet et personnalisez le comportement de clonage via la méthode de magie du clone \ _ \ _. 1. Utilisez le mot-clé Clone pour faire une copie peu profonde, en clonant les propriétés de l'objet mais pas aux propriétés de l'objet. 2. La méthode du clone \ _ \ _ peut copier profondément les objets imbriqués pour éviter les problèmes de copie superficiels. 3. Faites attention pour éviter les références circulaires et les problèmes de performance dans le clonage et optimiser les opérations de clonage pour améliorer l'efficacité.

PHP convient aux systèmes de développement Web et de gestion de contenu, et Python convient aux scripts de science des données, d'apprentissage automatique et d'automatisation. 1.Php fonctionne bien dans la création de sites Web et d'applications rapides et évolutifs et est couramment utilisé dans CMS tel que WordPress. 2. Python a permis de manière remarquable dans les domaines de la science des données et de l'apprentissage automatique, avec des bibliothèques riches telles que Numpy et Tensorflow.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP