でループすると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>
厄介なことに、このグループ化機能は maincfloop
に追加されていないため、 経由で使用する必要がありますcfoutput
。:(
更新: ColdFusion 10 および Railo 4 では、これをcfloop
ではなく で実行できるようになりcfoutput
ました。ただし、属性はgroupby ではなくgroupであることに注意してください。
<cfloop query="Questions" group="category_name">
**#category_name#**
<cfloop>
#question_name#
</cfloop>
</cfloop>
重要:これが HTML 出力の場合は、HtmlEditFormat(question_name)
潜在的な HTML インジェクションを回避するために使用してください。同様に、JsStringFormat(question_name)
JSインジェクションなどを避けるために.
繰り返しになりますが、CF10/R4 はどちらもこの状況を改善し、より一貫性のある名前のencodeForX
メソッド (つまりencodeForHtml
、encodeForJavaScript
、 など)を使用しています。