Coldfusion - 循环在行的专栏

时间:2015-07-28 14:46:13

标签: sql arrays coldfusion

我有一个CFQuery可以返回一些计数。 例如:

count1 | count2 | count3
   1   |   23   |  27

结果总是一行,但列并不总是相同。我的意思是有时候可能会返回3列,有时候会有10列以上,我不知道它们的名字。 我的目标是遍历列的名称并获取它们的值并将它们呈现在表中。

我试过这个:

<cfloop list="#qGetCommentsDetails#" index="col">
    <cfloop query="qGetCommentsDetails">
        #qGetCommentsDetails.[col][currentRow]#
    </cfloop>
</cfloop>

但是我收到了这个错误:

  

CFML变量名称不能以“。”结尾。字符。

     

变量qGetCommentsDetails。以“。”结尾字符。   您必须提供其他结构键或删除   “”字符。

任何人都知道如何循环列及其值?

1 个答案:

答案 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>