Hi,

I'm trying to extend a piece of code in an application and I'm not sure
what the correct syntax is.

The current code looks like:

<cfquery name="cats" datasource="#Application.DSN#">
   SELECT a.categoryname as category, b.categoryname as subsection,
b.categoryid, a.categoryid as acategoryid
   FROM categories a, categories b
   WHERE b.levels=2 and b.parentid=a.categoryid
   ORDER BY category,subsection
</cfquery>

<cfloop query=cats>
   <cfif NOT StructKeyExists(allcats, "#category#")>
       <cfset thecat=StructNew()>
       <cfset thecat.created=0>
       <cfset thecat.catid=#acategoryid#>
       <cfset tmp=StructInsert(allcats, "#category#", #thecat#)>
   </cfif>
   <cfif NOT StructKeyExists(allcats["#category#"], "#subsection#")>
       <cfset thesubcat=StructNew()>
       <cfset thesubcat.created=0>
       <cfset thesubcat.catid=#categoryid#>
       <cfset tmp=StructInsert(allcats["#category#"], "#subsection#",
#thesubcat#)>
   </cfif>
</cfloop>

I need to add a 3rd structure level to this, so for each subsection
there will be 0 or more structures within each subsection.
Would this be reasonable:

<cfquery name="cats" datasource="#Application.DSN#">
   SELECT     a.categoryname as category, a.categoryid as acategoryid,
           b.categoryname as subsection, b.categoryid,
           c.categoryname as manuf, c.categoryid as l3catid
   FROM categories a, categories b, categories c
   WHERE b.levels=2 and b.parentid=a.categoryid
         and c.levels=3 and c.parentid = b.categoryid
   ORDER BY category,subsection
</cfquery>

<cfloop query=cats>
   <cfif NOT StructKeyExists(allcats, "#category#")>
       <cfset thecat=StructNew()>
       <cfset thecat.created=0>
       <cfset thecat.catid=#acategoryid#>
       <cfset tmp=StructInsert(allcats, "#category#", #thecat#)>
   </cfif>
   <cfif NOT StructKeyExists(allcats["#category#"], "#subsection#")>
       <cfset thesubcat=StructNew()>
       <cfset thesubcat.created=0>
       <cfset thesubcat.catid=#categoryid#>
       <cfset tmp=StructInsert(allcats["#category#"], "#subsection#",
#thesubcat#)>
   <cfif NOT StructKeyExists(allcats["#category#"], "#subsection#",
"#manuf#")>
       <cfset l3cat=StructNew()>
       <cfset l3cat.created=0>
       <cfset l3cat.l3catid=#l3catid#>
       <cfset tmp=StructInsert(allcats["#category#"], "#subsection#",
"#manuf#", #l3cat#)>
   </cfif>
</cfloop>

What I'm not sure of is the syntax for referencing the allcats in the
StructKeyExists and the StructInsert functions. Is the above correct, or
would it be something like:

   <cfif NOT StructKeyExists(allcats["#category#", "#subsection#"],
"#manuf#")>
       <cfset l3cat=StructNew()>
       <cfset l3cat.created=0>
       <cfset l3cat.l3catid=#l3catid#>
       <cfset tmp=StructInsert(allcats["#category#", "#subsection#"],
"#manuf#", #l3cat#)>
   </cfif>

Or something else entirely?

Thanks much!

--Ben

--
Ben Conner            [EMAIL PROTECTED]
Web World, Inc.       888-206-6486
PO Box 1122           480-704-2000
Queen Creek, AZ 85242



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:315071
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to