我有一个CFQuery
可以返回一些计数。
例如:
count1 | count2 | count3
1 | 23 | 27
结果总是一行,但列并不总是相同。我的意思是有时候可能会返回3列,有时候会有10列以上,我不知道它们的名字。 我的目标是遍历列的名称并获取它们的值并将它们呈现在表中。
我试过这个:
<cfloop list="#qGetCommentsDetails#" index="col">
<cfloop query="qGetCommentsDetails">
#qGetCommentsDetails.[col][currentRow]#
</cfloop>
</cfloop>
但是我收到了这个错误:
CFML变量名称不能以“。”结尾。字符。
变量qGetCommentsDetails。以“。”结尾字符。 您必须提供其他结构键或删除 “”字符。
任何人都知道如何循环列及其值?
答案 0 :(得分:4)
您正在使用括号表示法混合点表示法。
这应该做你想要的:
<cfif qGetCommentsDetails.recordCount>
<cfloop list="#qGetCommentsDetails.columnList#" index="col">
<cfoutput>
#col# : #qGetCommentsDetails[col][1]# <br/>
</cfoutput>
</cfloop>
</cfif>
columnList
属性始终包含在查询对象中,并且是列名称的逗号分隔列表。只需在循环中使用它并使用括号表示法输出查询值。
编辑:正如@Tomalak所说,你也可以使用currentRow
:
<cfoutput query="qGetCommentsDetails">
<cfloop list="#qGetCommentsDetails.columnList#" index="col">
#qGetCommentsDetails[col][qGetCommentsDetails.currentRow]#
</cfloop>
</cfoutput>