如果您使用cfoutput
循环,则可以按特定列进行分组,然后为该列中的项目设置一个内部循环。
像这样:
<cfquery name="Questions">
SELECT q.question_name , c.category_name
FROM questions q
JOIN category c
ON c.category_id = q.category_id
ORDER BY c.category_name , q.question_name
</cfquery>
<cfoutput query="Questions" groupby="category_name">
**#category_name#**
<cfoutput>
#question_name#
</cfoutput>
</cfoutput>
烦人,这个分组功能还没有被添加到主cfloop
,你需要通过cfoutput
使用它。 :(
更新:在ColdFusion的10和Railo 4,你现在就可以做到这一点与cfloop
而不是cfoutput
但是请注意,属性是组没有GROUPBY:
<cfloop query="Questions" group="category_name">
**#category_name#**
<cfloop>
#question_name#
</cfloop>
</cfloop>
重要:如果这是HTML输出,使用HtmlEditFormat(question_name)
以避免潜在的HTML注入同样,JsStringFormat(question_name)
避免JS注射等
再次,CF10/R4既具有改善的这sitution也与更consitently命名encodeForX
方法(即encodeForHtml
,encodeForJavaScript
等)
我将如何构建像你的例子循环? – jeff 2010-06-04 02:08:03
@jeff,你是什么意思? cfoutput已经在查询中循环。 – Henry 2010-06-04 02:17:35
btw,不要忘记在##之间使用htmlEditFormat()。 :) – Henry 2010-06-04 02:18:09