我的CFC中有查询。该函数包含一个简单的查询。
<cfquery name="qrySE" datasource=#mydatasource#>
SELECT
NAMES,SALARY
FROM tblTest
</cfquery>
我想这样(水平地)显示我的结果集:
NAME1 NAME2 NAME3 NAME4 10 20 45 62
有没有办法遍历查询列并为此目的创建虚拟查询?
如果有人这样做,请告诉我。
答案 0 :(得分:11)
只是想添加Al Everett的解决方案按字母顺序返回列。如果您希望以与您可以使用的查询相同的顺序返回列名称:
ArrayToList( qrySE.getColumnNames() )
我在这里找到:http://www.richarddavies.us/archives/2009/07/cf_columnlist.php
您可以使用它来创建一个函数来向这样的表输出查询:
<cffunction name="displayQueryAsTable" output="true">
<cfargument name="rawQueryObject" type="query" required="true">
<table >
<tr>
<cfloop list="#ArrayToList(rawQueryObject.getColumnNames())#" index="col" >
<th>#col#</th>
</cfloop>
</tr>
<cfloop query="rawQueryObject">
<tr>
<cfloop list="#ArrayToList(rawQueryObject.getColumnNames())#" index="col">
<td>#rawQueryObject[col][currentrow]#</td>
</cfloop>
</tr>
</cfloop>
</table>
</cffunction>
答案 1 :(得分:7)
您可以使用随每个查询返回的内置 query.columnList 。 (它是查询的元数据,如 recordCount 。)
你可以这样做:
<table>
<cfloop list="#qrySE.columnList#" index="col">
<tr>
<cfloop query="qrySE">
<td>#qrySE[col][currentRow]#</td>
</cfloop>
</tr>
</cfloop>
</table>
未经测试,但这应该会给你一个想法。