我有 2 张桌子。一个用于类别,第二个用于问题。
category table:
category_id
category_name
questions table:
question_name
question_id
category_id
如何遍历所有类别名称并显示分组在每个类别名称下的问题?使用 ColdFusion,所以我假设我应该使用<CFLOOP>
结果应该看起来像这样。
类别1
- 问题 1
- 问题2
类别2
- 问题 4
- 问题 5
我有 2 张桌子。一个用于类别,第二个用于问题。
category table:
category_id
category_name
questions table:
question_name
question_id
category_id
如何遍历所有类别名称并显示分组在每个类别名称下的问题?使用 ColdFusion,所以我假设我应该使用<CFLOOP>
结果应该看起来像这样。
类别1
类别2
如果您使用 循环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
. 但是请注意,该属性是group而不是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
等)