使用php将类别和子类别显示为两列

使用php将类别和子类别显示为两列,php,javascript,html,Php,Javascript,Html,可能重复: 如何使用php以这种格式显示类别和子类别 categories subcategories ---------- ------------- php php4 java java4 java java5 我的桌子是空的 cattitle subcattitle -------- ------------- acer php java

可能重复:

如何使用php以这种格式显示类别和子类别

  categories  subcategories
    ----------  -------------
    php         php4
    java        java4
    java        java5
我的桌子是空的

cattitle  subcattitle
--------  -------------
acer       
            php
            java
compaq      java4
dell        
            laptop1
            laptop2
“宏碁”是一个主要类别,“php”和“java”是它的子类别等等。我想用php显示这种类型的结构。而且它来自一张桌子。表名为
categories
,字段为
id
parentid
cattitle

我已经尝试过这段代码。

这里有一种方法。 它要求主类别具有
parent\u id
=0

SELECT sc.`cattitle` as `subcat`,
    (SELECT c.`cattitle`
    FROM `categories` as c
    WHERE c.`id` = sc.`parent_id`) as `cat`
FROM `categories` as sc
WHERE sc.`parent_id` != 0
。。。这是另一个变体

SELECT sc.`cattitle` as `subcat`,
    c.`cattitle` as `cat`
FROM `categories` as sc
LEFT JOIN `categories` as c
    ON (c.`id` = sc.`parent_id`)
WHERE sc.`parent_id` != 0
如果您的表的结构是这样的,那么这将起作用:

id cattitle   parent_id
1  java       0
2  java4      1
3  java5      1
4  php        0
5  php5.3     4
6  php4.3     4

我尝试了这一点,但没有给出正确的结果,并在同一行类别及其子类别上给出结果。。我想显示类别及其子类别在不同的行中。不清楚您的表是如何构造的。您在
java4
上面有
java
作为子类。。。如果在上面的示例中,您将
java
显示为一个“类别”,而不是“子类别”,那么这是不对的。你能澄清一下你的表结构吗?只需在mysql表3的“id”、“parentid”和“cattitle”字段中,感谢你的想法,但这不起作用,而且我也完成了这项任务,所以感谢你回复我所有的朋友。。