2011-11-16 4 views
2

저는 coldfusion에 초보자입니다. 함수 내에서 쿼리를 반복 할 필요가 있습니다. 예를 들어, 'a'로 시작하는 이름을 반환하는 쿼리가있는 함수가 있습니다. 하지만 난 단지 하나의 값 (첫 번째 값) 데이터베이스에서 얻을 수 있습니다. 사실 db에서 우리는이 쿼리에 대한 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> 

감사합니다 ...

+0

''에서 = "qname를"

를 사용하여 쿼리는 오직 첫 번째 행을 반환합니다. Jason이 말한 것처럼 태그에 쿼리 속성을 추가하여 레코드 세트를 반복합니다. –

답변

2

아 감사합니다. 나는 당신의 질문을 잘못했다 ... 이전 답을 무시한다 ..

당신은 질의로 나오기 위해 함수에서 곧바로 질의를 전달한다. 당신의 cfouptut

<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> 
관련 문제