2012-03-05 93 views
-1

在Coldfusion中顯示父/子列表項目的最佳方式是什麼?該表包含一個ID,標題,parentID如何顯示父/子列表項目

我想顯示在一個嵌套的無序列表中的項目。

+4

請給我們示例代碼。花時間給我們提供你想要的完美例子,我們會花時間給你答案。 – 2012-03-05 19:45:48

+1

你問如何顯示它們(已經提取它們),或者如何從數據庫中查詢它們?這是兩個非常不同的問題。另外:你在用什麼數據庫?正如埃維克所說,你的問題不是很好。 – 2012-03-06 00:02:21

回答

1

這是假設孩子們將通過故意將它排除在ORDER BY語句之外的任何順序從數據庫中回來。以下是我用來製作和填充表的SQL:

CREATE TABLE Testing 
(
ID int, 
Title varchar(25), 
ParentID int 
) 

INSERT INTO Testing VALUES (1, 'Parent One', null) 
INSERT INTO Testing VALUES (2, 'Parent Two', null) 
INSERT INTO TESTING VALUES (3, 'First Child of One', 1) 
INSERT INTO TESTING VALUES (4, 'Second Child of One', 1) 
INSERT INTO TESTING VALUES (5, 'First Child of Two', 2) 
INSERT INTO TESTING VALUES (6, 'Parent Three', null) 

這是CFM代碼。假設有些父母可能存在沒有孩子的情況,我做了一個左外連接。如果沒有孩子存在,我沒有添加檢查來顯示孩子的「標題」,但是一個簡單的CFIF可以解決這個問題。無論是隻是試圖顯示簡短的代碼,我認爲回答你的問題,並讓你在正確的方向:

<cfquery name="myQuery" datasource="Testing"> 
    SELECT C.ParentID, P.TITLE ParentTitle, C.ID ChildID, C.TITLE ChildTitle 
    FROM Testing P LEFT OUTER JOIN Testing C ON P.ID = C.ParentID 
    WHERE P.ParentID IS NULL 
    ORDER BY P.TITLE 
    </cfquery> 

<cfoutput query="myQuery" group="ParentTitle"> 
    Parent = #ParentTitle#<br /> 
    <cfoutput> 
     &nbsp;&nbsp;Child=#ChildTitle#<br /> 
    </cfoutput> 
    <hr /> 
</cfoutput> 
相關問題