Если вы работаете с 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
. :(
Update: В 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 также улучшили эту постановку, более используя методы encodeForX
(т. encodeForHtml
, encodeForJavaScript
и т. Д.)
Как бы я построил цикл как ваш пример? – jeff
@jeff, что означает u? cfoutput уже выполняет цикл запроса. – Henry
btw, не забудьте использовать htmlEditFormat() между ##. :) – Henry