English 中文(简体)
显示类别-->子类别-->等的无限结构?
原标题:Displaying Unlimited Structure of Categories --> Subcategories --> etc?

我想,当涉及到构建任何一种依赖于按类别排序和显示数据的应用程序时,这对人们来说都是一个相当普遍的要求——任何CMS/Forums/Carts等,我一直在竭尽全力想办法显示所有类别及其子代,但都无济于事——我所做的最好的事情就是while loop in while loo(无论我认为我可能需要多少级别),但在我看来,这违背了编程的要点,它需要毫不费力地扩展。

因此,给定:

Category 1
-Sub cat
-Sub cat
--Sub sub cat
--- Sub sub cat
-- Sub sub cat
-Sub cat
Category 2
-Sub cat
-Sub cat
--Sub sub cat
---sub sub sub cat
----sub sub sub sub cat
-sub cat
Category 3
-Sub cat

数据库字段:ID名称ParentIDS

如何从数据库中回显层次结构中的每个类别?

我会发布我的代码,但很明显,考虑到嵌套循环的长期方式,它是巨大的。

我曾想过编写一些代码来找到类别树的深度,但这仍然不能解决问题?

最佳回答

你所说的结构本质上是一棵树。如果使用递归,在树上迭代相对简单。我不知道您使用的是什么数据库访问代码,但您应该能够从以下伪代码中进行相应的推断:

function iterate_tree(arr) {
    foreach (item in arr) {
        print item;
        iterate_tree(item.children);
    }
}

在英语中,这意味着打印列表中的一个项目,然后打印其子项目,一旦所有子项目(及其子项目)都打印完毕,就转到列表中的下一个项目。

问题回答

作为提示,您可以使用递归。可在http://en.wikipedia.org/wiki/Recursion。也就是说,您编写的函数可以抓取并显示当前文件夹中的所有文件和文件夹。然后,在相同的递归循环中,对每个子文件夹重复应用相同的函数。等等。

mysql网站上有一个非常好的教程。

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ Goto the The Nested Set Model if you want to read the interesting part

坦率地说,我认为没有任何其他/更好的方法来存储分层数据。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签