2016-05-02 2 views
2

Ich arbeite an einem ziemlich einfachen Menüsystem, bei dem alle Kategorien in einer einzigen Tabelle gespeichert sind, mit Unterkategorien, die in einem Feld 'issubcategoryof' markiert sind. Auf der Ausgabeebene haben Kategorien, die Unterkategorien haben, keinen Wert für das Feld 'link' (das Klicken auf den Kategorienamen löst eine Ansicht der Unterkategorien aus), aber alle Unterkategorien haben einen Verknüpfungswert (und natürlich Kategorien ohne Unterkategorie) habe einen Linkwert). Zur Vermeidung von Zweifeln, Unterkategorien gehen nur 1 Ebene (so Kategorie> Unterkategorie).Gruppierung und Ausgabe von Kategorien und Unterkategorien

Die Abfrage und Ausgabe funktioniert in dem Sinne, in dem die Kategorien und Unterkategorien richtig angezeigt werden, aber 'Link' Werte werden aus irgendeinem Grund nicht für Unterkategorien übergeben. Damit meine ich die #link# neben #subcatheader# ist leer, wenn es ausgegeben wird, aber es sollte ein Wert sein.

Hier ist die Abfrage und die Ausgabe, die ich derzeit habe;

<cfquery name="getnav"> 
SELECT p.navID AS PrimaryID, p.catheader, p.navsort, p.link, c.navID AS SubCategoryID, c.subcatheader, c.link 
FROM sitenav p 
LEFT JOIN sitenav c ON p.navID = c.IsSubcatOf 
WHERE p.isSubcatOf = 0 
ORDER BY p.navsort ASC 
</cfquery> 

<cfoutput query="getnav" group="catheader"> 
    <div class="sidebar-menu"> 
     <cfif link NEQ ''> 
      <a href="#link#">#catheader#</a> 
     <cfelse> 
      #catheader# 
     </cfif> 
     <div class="expand"></div> 
    </div> 
    <cfif link EQ ''> 
     <div class="sub-menu"> 
     <ul> 
      <cfoutput> 
       <li><a href="#link#">#subcatheader#</a></li> 
      </cfoutput> 
     </ul> 
     </div> 
    </cfif> 
</cfoutput> 

Ich habe eine Zeit lang bei dieser starren und es scheint, als ob ich etwas wirklich offensichtlich fehlt, aber es spielt mir im Moment! Alle Hinweise sehr willkommen!

+1

Was meinen Sie, die Linkwerte werden nicht übergeben? Ohne die Bestellung von 'cateader' sollte dies nicht funktionieren. –

+0

Im Wesentlichen ist # # # neben # subcatheader # bei der Ausgabe leer - aber es sollte ein Wert sein. – Lee

+0

Anstatt zu raten, würde es hilfreich sein, einen Dump der unformatierten Abfragedaten zu sehen, zB getnav. – Leigh

Antwort

6

Ich würde dies in einem Kommentar tun, aber ich habe nicht genug rep. Punkte. Wie auch immer, Sie haben zwei "Link" -Felder, jeweils eins für p und c. Vielleicht müssen Sie ihnen verschiedene Namen geben?

+0

Weiß nicht, ob es das Problem ist, aber das ist eine gute Beobachtung :) +1 – Leigh

+0

Das war es! Ich änderte die Abfrage zu "c.link AS sublink" und es funktioniert jetzt perfekt. Vielen Dank! – Lee

+1

Meine Stimme hat Ihren Ruf über 100 gebracht. Sie schulden mir ein Bier. –

Verwandte Themen