2014-01-11 102 views
0

我有一個名爲內容的表格,我在添加頂級頁面和子頁面。頂級頁面將有parent__id as the id of page title home,子頁面將分別有parent__id。當我添加頁面時,它看起來像這樣。如何展示小孩的孩子?

id parent__id title and so on. 
1  0  Home 
2  1  About 
3  2  services 
4  1  contact us 

在這裏我要像

Home 
    >About 
    >>services 
    >contact 

顯示它,我已經試過這

<cfquery name="d" datasource="mydata"> 
    SELECT p.id as parentid, 
      p.title as parent, 
      p.nav_depth, 
      c.id as childid, 
      c.title as child, 
      c.parent__id as child_parentid 
    from content p 
    left join content as c on c.parent__id = p.id 
    where p.site__id = "8432381492061036983" 
    group by p.id, c.id 
    order by p.id, c.id, c.nav_order 
</cfquery> 
<cfdump var="#d#"> 

<cfoutput query="d" group="parentid"> 
    <cfif d.nav_depth EQ 0> 
     #d.parent#<br /> 
     <cfif d.parentid EQ d.child_parentid> 
     <cfoutput>> #d.child#<br /></cfoutput> 
     </cfif> 
    </cfif> 
    <cfif d.nav_depth GT 0> 
      <cfif d.childid EQ d.child_parentid> 
      <cfoutput> >> #d.child<br /></cfoutput> 
      </cfif> 
    </cfif> 
</cfoutput> 

我得到的輸出是這樣的。當我看着轉儲它顯示正確的結果。

Home 
> About US 
> Services 

可以在任何幫助我,我應該在查詢或CFOUTPUT做不同的標記孩子的孩子,只是家長下方顯示呢? 這裏是我的完整表結構數據http://sqlfiddle.com/#!2/a29fc/1/0。謝謝

+0

請解釋頁面的概念,你看到它。您的散文與您的代碼似乎存在脫節。 –

+0

默認情況下,稍後在內容表中會有一個名爲'Home'的頁面,每當你添加頁面時他們將成爲家中的孩子,例如添加名爲'about'的頁面,它將成爲孩子家庭,然後創建另一個名爲'services 「當你尋找路徑時,它會是這樣的孩子。家/約/服務 –

回答

1

我沒有看到孩子來自哪裏,但你需要的是一個嵌套的組輸出。這應該讓你走上正軌。最值得關注的是您的查詢按照它們應該在屏幕上顯示的順序排序。您當前的SQL小提琴沒有正確執行此部分。

<cfoutput query="d" group="parentid"> 
    #d.parent#<br /> 
    <cfoutput group="child"><!--- group based on child ---> 
    > #d.child#<br /><!--- output child header ---> 
    <cfoutput> 
     >> #d.child<br /><!--- all matching children for current d.child ---> 
    </cfoutput> 
    </cfoutput> 
</cfoutput> 

這將輸出

Home 
> About Us 
>> Our Works 
> Contact Us 
+0

我都試過,但它給別的 '首頁 >關於我們 >>關於我們 >服務 >>服務 >我們的作品 >>我們works' –

+0

您需要訂購貴正確查詢並將第二個d.child引用更新爲正確的值 –

+0

我正在訂購查詢來顯示它正在顯示正確的我想。引用到正確的這是我想知道的:( –