我是coldfusion的新手,我被困在函数内循环查询。例如,我有一个函数,其中有一个查询,返回以'a'开头的名称。但是我只能从数据库中获得一个值(第一个值)。实际上,在数据库中,我们有超过1个值用于此查询。我应该如何循环查询内的功能?如有任何帮助,不胜感激。
<cffunction name="getNames" returntype="any">
<cfargument name="letter" required="true">
<cfquery name="getNamesfrmDB" datasource="test">
select * from employee where firstname like '#arguments.letter#%'
</cfquery>
<cfreturn getNamesfrmDB/>
</cffunction>
<cfoutput>#getNames('a').firstname#</cfoutput>
啊哈。我认为你的问题是错的……忽略之前的答案…
您将查询直接从函数中传递出来,因此它将作为查询输出,您可以将其视为查询。
在输出文件中使用query="qname"
<cffunction name="getNames" returntype="any">
<cfargument name="letter" required="true">
... your query ..
<cfreturn getNamesfrmDB/>
</cffunction>
<!---call the function--->
<cfset names = getNames('a')>
<!---now loop over the results using cfoutput--->
<cfoutput query="names">
<p>#firstname#</p>
</cfoutput>
<!---OR ALTERNATIVELY, as you can't use cfoutput inside cfoutput.. so if you are already inside a cfouput, you can also output query results using cfloop--->
<cfoutput>
..some other stuff...
<cfloop query="names">
<p>#firstname#</p>
</cfloop>
..some other stuff..
</cfoutput>