Если вы зациклились на 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
. Однако обратите внимание, что атрибут group not 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 также улучшили эту ситуацию с более подходящими именами encodeForX
методов (т.е. encodeForHtml
, encodeForJavaScript
и т. Д.)