我想动态输出表格及其数据。我有数据源和表名。
我正在考虑使用<cftable>
,但我坚持使用动态列名称。
这基本上就是我想做的事情 - 它显然不起作用,但这里仅用于说明目的。
<cfset datasource = "test">
<cfset tablename = "mytable">
<!--- first get the columns from the table --->
<cfquery name="getcolumns" datasource="#datasource#">
SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '#mytable#';
</cfquery>
<!--- Now select all from the table --->
<cfquery name="selectall" datasource="#datasource#">
SELECT *
FROM #mytable#
</cfquery>
<!--- Output all rows from the table --->
<cftable query="selectall">
<cfoutput query="getcolumns">
<cfcol text="#COLUMN_NAME#" header="#COLUMN_NAME#">
</cfoutput>
</cftable>
答案 0 :(得分:3)
您可以使用两种方法。记录的功能queryName.columnlist
按字母顺序为您提供所有列名称的列表。未记录的功能queryName.getcolumnlist()
按照它们在select子句中出现的顺序为您提供所有列名称的数组。
这可以让你做这样的事情。
<cfoutput query="queryName">
<cfloop list = "#queryName.columnlist#" index = "column">
#queryName[column][currentrow]#
closing tags