当查询列是变量时从 cfquery 获取值

发布于 2024-12-08 13:58:27 字数 505 浏览 5 评论 0原文

我被困住了...不记得如何进行这项工作。代码:

<cfquery name = "getsomething>
   select a, b, c
   from d
   where id = '1'
</cfquery>
<cfloop collection="#arguments#" item="argument">
    <cfif #StructFind(arguments, argument)# neq #getsomething.argument[0]#><!--- here's the problem --->
        do something
    </cfif>
</cfloop>

查询返回一条记录;我需要获取该记录的每一列的值。列名是一个变量(参数)。我需要替换什么语法

 #getsomething.argument[0]#

?谢谢。

I'm stuck... can't remember how to make this work. The code:

<cfquery name = "getsomething>
   select a, b, c
   from d
   where id = '1'
</cfquery>
<cfloop collection="#arguments#" item="argument">
    <cfif #StructFind(arguments, argument)# neq #getsomething.argument[0]#><!--- here's the problem --->
        do something
    </cfif>
</cfloop>

The query returns one record; I need to get the values of each column for that record. The column name is a variable (argument). What syntax do I need to replace

 #getsomething.argument[0]#

? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蹲在坟头点根烟 2024-12-15 13:58:27

您需要进行一些调整:

我看到您正在使用“collection”参数进行循环。这意味着您有一个像这样的数据结构:

<cfset arguments = StructNew() />
<cfset arguments.a = 'x' />
<cfset arguments.b = 'y' />
<cfset arguments.c = 'c' />

您可以看到在这种情况下值并不重要 - 重要的是通过使用“集合”参数,您正在使用一个结构。有点不正确,但让我们继续假设。

您不希望动态评估参数的值,您需要 - 它们映射到您的列,因此像这样循环:

<cfloop list="#StructKeyList(arguments)#" index="argument">

然后,以下代码有效:

<cfif StructFind(arguments, argument) neq getsomething[argument][1]>

请注意,在这个答案中,我已将查询索引从 0 更改为 1:cfquery 数组是从 1 开始的,因此第一行不是 [0],而是 [1]。

You need to make a couple of adjustments:

I see you are looping using the "collection" argument. This implies you have a data structure like so:

<cfset arguments = StructNew() />
<cfset arguments.a = 'x' />
<cfset arguments.b = 'y' />
<cfset arguments.c = 'c' />

You can see that the values do not matter in this case--what matters is that by using the "collection" argument, you are working with a struct. Somewhat incorrect, but let's move forward with the assumption.

You do not want the value of your arguments dynamically evaluated, you want the keys--they map to your columns, so loop like this:

<cfloop list="#StructKeyList(arguments)#" index="argument">

then, the following code works:

<cfif StructFind(arguments, argument) neq getsomething[argument][1]>

Note that in this answer, I've changed your query index from 0 to 1: cfquery arrays are 1-based, so the first row is not [0], but [1].

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文