2

私は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>

前もって感謝します...

4

1 に答える 1

2

ああ。私はあなたの質問を間違って準備しています...以前の回答を無視してください..

関数から直接クエリを渡しているため、クエリとして出てきて、そのように扱うことができます。

cfouptut で 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>
于 2011-11-16T09:50:22.140 に答える