如何使用不同的列名集构建结构?
How to build structure with different set of column names?
我的 cfquery 中有两组不同的列。一组列是为 values
保留的,第二组是为表单输入字段中的 title
保留的。我正在服务器端构建结构,我希望这两个位于单独的列中。这是示例:
<cfquery name="UInfo" datasource="Test">
SELECT TOP 1
u_fname,
u_lname,
zu_fname,
zu_lname
FROM Users WITH (NOLOCK)
WHERE u_urid = '0012341'
</cfquery>
<cfloop query="UInfo">
<cfset qryRecs = StructNew()>
<cfloop array="#UInfo.getColumnNames()#" index="columnName">
<cfset qryRecs[columnName]['value'] = UInfo[columnName][CurrentRow]>
<cfset qryRecs[columnName]['title'] = (structKeyExists(UInfo, "z"&columnName)? UInfo[columnName][CurrentRow] : "")>
</cfloop>
</cfloop>
我上面的代码会产生这种输出:
U_FNAME
struct
title First Time
value Mark
U_FLAST
struct
title New Customer
value Miller
ZU_FNAME
struct
title First Time
value [empty string]
ZU_LNAME
struct
title New Customer
value [empty string]
正如您在上面看到的,我的代码也为 Z 列生成了结构。我不需要这些列的单独结构,它们应该只显示在 TITLE 中。我的输出应该是这样的:
U_FNAME
struct
title First Time
value Mark
U_FLAST
struct
title New Customer
value Miller
我不确定如何获得所需的输出。如果有人可以提供帮助,请告诉我。谢谢!
你有这个:
<cfset qryRecs = StructNew()>
在循环中。应该在这之前:
<cfloop query="UInfo">
看来您只需要在列名称循环内的 columnName 上使用 if 语句
<cfif left(columnName, 1) eq "u">
我的 cfquery 中有两组不同的列。一组列是为 values
保留的,第二组是为表单输入字段中的 title
保留的。我正在服务器端构建结构,我希望这两个位于单独的列中。这是示例:
<cfquery name="UInfo" datasource="Test">
SELECT TOP 1
u_fname,
u_lname,
zu_fname,
zu_lname
FROM Users WITH (NOLOCK)
WHERE u_urid = '0012341'
</cfquery>
<cfloop query="UInfo">
<cfset qryRecs = StructNew()>
<cfloop array="#UInfo.getColumnNames()#" index="columnName">
<cfset qryRecs[columnName]['value'] = UInfo[columnName][CurrentRow]>
<cfset qryRecs[columnName]['title'] = (structKeyExists(UInfo, "z"&columnName)? UInfo[columnName][CurrentRow] : "")>
</cfloop>
</cfloop>
我上面的代码会产生这种输出:
U_FNAME
struct
title First Time
value Mark
U_FLAST
struct
title New Customer
value Miller
ZU_FNAME
struct
title First Time
value [empty string]
ZU_LNAME
struct
title New Customer
value [empty string]
正如您在上面看到的,我的代码也为 Z 列生成了结构。我不需要这些列的单独结构,它们应该只显示在 TITLE 中。我的输出应该是这样的:
U_FNAME
struct
title First Time
value Mark
U_FLAST
struct
title New Customer
value Miller
我不确定如何获得所需的输出。如果有人可以提供帮助,请告诉我。谢谢!
你有这个:
<cfset qryRecs = StructNew()>
在循环中。应该在这之前:
<cfloop query="UInfo">
看来您只需要在列名称循环内的 columnName 上使用 if 语句
<cfif left(columnName, 1) eq "u">