在cfloop中使用fieldname中的变量

时间:2016-07-24 05:02:48

标签: coldfusion cfml railo lucee

我在一个名为p1,p2,p3等数据库中有几个字段,它们由一个名为GetUser的查询返回。我想检查他们的值,但以下代码错误在我身上。我确定我的格式' GetUser.p#x#'是错的,但我无法弄清楚该怎么做。任何帮助将不胜感激。

我有以下代码,有效...

integer

当然,这是一种糟糕的方式,所以我想做一个如下的循环来实现相同的结果:

SIGN

这个错误了。所以我希望了解如何实现这一目标。

//有一个类似的问题表明queryName [" columnName"] [rowNumber]是必需的。这是不同的,也更简单。

2 个答案:

答案 0 :(得分:1)

好的,明白了...答案是:

 <cfloop index = "x" from = "1" to = "10">
   <cfif getUser['p0' & x] is 1><li> 0#x#</li> </cfif>
 </cfloop>

Matt Busche几乎拥有它。 getUser ['p0'+ x]需要getUser ['p0'&amp; x]

谢谢!

答案 1 :(得分:0)

为清晰起见编辑:

<cfquery name="getuser"  datasource="STACK">
    Select * from stackoverflow
</cfquery>

<cfset fieldNumber = #ListLen(getuser.ColumnList)#>
<cfoutput>
<cfloop index="i" from="1" to="#fieldNumber#"> 
This is P#i#
</cfloop>
</cfoutput>

根据您的评论,您希望根据要返回的列进行条件检查。假设您的列名称一致,则返回的列应始终与循环的迭代匹配。你应该只需要遍历尽可能多的字段,这样就可以完全不用硬编码10或其他任何字段。

因此,不是检查值是p1还是p2,而是使用#i#,例如:

<cfif i is 1> P1 is here. </cfif>