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