如果您使用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