我使用此代码来显示平台列表。如果在输入页面时指定了platformID,我想创建指定平台下的流派列表。在CF中嵌套查询
- browse.cfm经所指定1
- browse.cfm的platformID将列出所有可用的平台
browse.cfm现在列出的1
platformID下所有可用的流派链接访问<ul> <li>Browse</li> <cfoutput query="qGetPlatforms"> <li> <a href="browse.cfm?platformID=#URLEncodedFormat(Trim(qGetPlatforms.platformID))#">#qGetPlatforms.pName#</a> <cfif URL.platformID EQ qGetPlatforms.platformID> <ul> <cfoutput query="qGetGenres"> <li><a href="browse.cfm?genreID=#URLEncodedFormat(Trim(qGetGenres.genreID))#">#qGetGenres.gName#</a></li> </cfoutput> </ul> </cfif> </li> </cfoutput> </ul>
通过使用这种方法,但是,我发现了一个无效的嵌套配置。我该如何解决?还是有另一种方法来实现相同的想法?
感谢
我的查询:
<!---Get platforms--->
<cffunction
name="fGetPlatforms"
access="public"
returntype="query"
output="false"
hint="I get all the platforms">
<!---Local var--->
<cfset qGetPlatforms = "">
<!---Database query--->
<cfquery name="qGetPlatforms" datasource="#REQUEST.datasource#">
SELECT
platforms.platformID,
platforms.platformName AS pName
FROM
platforms
</cfquery>
<cfreturn qGetPlatforms>
</cffunction>
<!---Get genres--->
<cffunction
name="fGetGenres"
access="public"
returntype="query"
output="false"
hint="I get all the genres">
<!---Local var--->
<cfset qGetGenres = "">
<!---Database query--->
<cfquery name="qGetGenres" datasource="#REQUEST.datasource#">
SELECT
genres.genreID,
genres.genreName AS gName
FROM
genres
</cfquery>
<cfreturn qGetGenres>
</cffunction>
塞尔吉,谢谢你的提示。有用。但是如果你考虑使用cfoutput查询是过时的,有没有办法在没有它的情况下执行上面的代码?或者在这种情况下可以继续使用cfoutput查询吗? – Mohamad 2010-07-12 18:04:35
对于分组查询需要使用'cfoutput'循环,但不适用于简单嵌套。你可以简单地将'cfoutput'包装到你的整个HTML中,'cfloop'中的变量将按照预期呈现。 – 2010-07-12 18:47:11
使用cfloop的唯一问题是它不支持组属性,但在大多数情况下它们是可互换的 – rip747 2010-07-13 16:11:30