編輯:問題是重複的,但ANSWER不是!ColdFusion - 嵌套變量(動態變量讀取)
我有以下代碼:
<cfquery name="contact" datasource="thesource">
SELECT * FROM #table# WHERE foo = '#bar#'
</cfquery>
再後來就(這是問題的一部分):
<cfloop from="0" to="9" index="i">
<cfset thisvar = Evaluate("contact.check" & i) />
<cfoutput>
#thisvar#
</cfoutput>
</cfloop>
在執行時,它拋出一個漂亮的大「變contact.check0是未定義」。但是,如果硬編碼,#contact.check0#
將輸出很好。
有關如何解決此問題的任何想法?
說明: 我看過Coldfusion - variable field name when looping through database query results,雖然問題看起來完全一樣,但解決方案不起作用。根據評論,我也得到一個「不能轉換爲數字」的錯誤。我注意到托馬拉克提到「有點捉襟見肘」,但從來沒有說過它是什麼。在他鏈接到的文章中,我已經嘗試過每一種語法上相同的形式,並且它都會引發錯誤......無法轉換爲數字或者未定義。
此外,我知道Evaluate()
有開銷和「不應該使用」。我會採取任何可行的解決方案,無論它是否具有評估功能。
這是ColdFusion的9
謝謝
編輯:而類似的問題已經有了答案,這個問題有不同的原因。見下面的接受答案。
您引用的鏈接中的正確答案應該有效。產生「無法轉換爲數字」錯誤的代碼是什麼? –
同意,該答案中的代碼將正常工作,假設您的查詢包含列名「check0,... check9」。 * RE:我注意到Tomalak提到「有點捉摸」,但從來沒有說過它是什麼*是的他做到了。他說:「當使用」尖括號「-syntax訪問Query對象時,您必須追加(從1開始)行號索引」ie queryName [「columnName」] [rowNumber]''。 – Leigh
你在名爲'check0'的查詢中有一列嗎? –