使用ColdFusion动态输出MySQL而不使用列名

时间:2017-08-14 14:30:32

标签: mysql coldfusion

我想动态输出表格及其数据。我有数据源和表名。

我正在考虑使用<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>

1 个答案:

答案 0 :(得分:3)

您可以使用两种方法。记录的功能queryName.columnlist按字母顺序为您提供所有列名称的列表。未记录的功能queryName.getcolumnlist()按照它们在select子句中出现的顺序为您提供所有列名称的数组。

这可以让你做这样的事情。

<cfoutput query="queryName">
<cfloop list = "#queryName.columnlist#" index = "column">
#queryName[column][currentrow]#
closing tags