3

クエリの結果を表示しようとしていますが、クエリが生成する 2 つの値を組み合わせるのに苦労しています...ここに私が持っているクエリがあります

    <cffunction name="getStudentData"  returntype="query">
    <cfargument name="nameVar" type="string" required="yes">
    <cfargument name="timeframe" type="numeric" required="yes">

    <cfquery datasource="#Application.hds#" name="gsd">
    select (s.lastname + ', ' + s.firstname) as StudData,
    ('[' + r.hallname + ' ' + r.roomnumber + ']')  as roomdata,
     s.studentnumber
    from tblstudents s left join 
    (select h.hallname, ra.roomnumber, studentid 
    from tblroomassignments ra, tblhalls h
    where ra.TimeFrame = #Arguments.timeframe# 
    and ra.hallid = h.hallid) r
    on s.studentid = r.studentid
    where s.lastname like '#Arguments.nameVar#%'
    </cfquery>
    <cfreturn #gsd#>
    </cffunction>

私が理解しようとしているのは、StudData+' '+roomdata IF を表示する方法です。両方が一緒に存在する場合、一部の学生には部屋が割り当てられないためです。(寮/部屋が割り当てられている学生のリストを作成しようとしています。私のcfselectでは...

<cfselect name="RecipientName"
          query="studentdata"
          display="StudData+' '+roomdata"???????
          value="studentnumber">
</cfselect>

ページでクエリ列エラーが発生せずに、表示属性で StudData と roomdata を取得する方法がわかりません。私はcoldfusionに非常に慣れていません.1つの変数しか表示できないと理解していますか? StudData と roomdata を組み合わせて変数にし、その変数を表示する方法はありますか?

誰にもアイデアはありますか?これは単純化できますか?これがすべて理にかなっていることを願っています!

4

1 に答える 1

4

私は acfselectをまったく使用しません。

<select name="RecipientName">
  <cfoutput query="studentdata">
    <option value="#studentnumber#">#StudData# #roomdata#</option>
  </cfoutput>
</select>

本当に を使用したい場合cfselectは、クエリで列を連結します。

StudData + roomdata AS expanded_student_data

...

<cfselect name="RecipientName"
  query="studentdata"
  display="expanded_student_data"
  value="studentnumber"
>
</cfselect>
于 2015-05-27T17:11:26.007 に答える