0

我的 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

我不确定如何获得所需的输出。如果有人可以提供帮助,请告诉我。谢谢!

4

2 回答 2

1

你有这个:

<cfset qryRecs = StructNew()>

在一个循环内。应该在这之前:

<cfloop query="UInfo">
于 2017-06-30T12:56:30.277 回答
1

看来您只需要在列名循环内的 columnName 上使用 if 语句

<cfif left(columnName, 1) eq "u">
于 2017-06-30T14:24:17.083 回答