請忽略此職位。我在這裏更清楚地說明了我的問題: Error with CFLoop When Entries Are Missing缺少條目的CFLoop錯誤
我正在運行下面的CFLoop代碼。
<cfset data = queryNew("sid,firstname,lastname,age","integer,varchar,varchar,integer")>
<cfloop index="x" from="1" to="50">
<cfset queryAddRow(data)>
<cfset querySetCell(data,"sid",x)>
<cfset querySetCell(data,"firstname","#first[x]#")>
<cfset querySetCell(data,"lastname","#last[x]#")>
<cfset querySetCell(data,"age","#studentage[x]#")>
</cfloop>
<cfoutput query="data">
#sid# - #firstnamet# #lastname# - #age#<br />
</cfoutput>
變量first[x]
,last[x]
,和studentage[x]
正在從外部數據源拉出,與X
是循環索引。請注意,CFLoop有50個條目。
當有數據可用時,代碼工作得很好。但是,當缺少數據時,代碼會中斷。我的意思是,如果條目11沒有爲first[x]
變量列出的名稱,我會得到一條沿"Element first is undefined. The error occurred on line 5
(第5行是名字條目)的錯誤。
發生這種情況時,我想從結果中省略條目11(以及導致錯誤的所有其他條目),並防止顯示錯誤。我怎樣才能做到這一點?
澄清:請假定數據已定義。自從我使用外部數據源以來,它變得有點毛毛。但我所說的是參賽作品1到10出現。當它的條目11輪到時,這是錯誤出現的時間。
定義的第一個,最後一個學生變量在哪裏?在我看來,您正在創建一個包含50行相同數據的查詢。另外,您正在循環查看「數據」查詢,但顯示的是第一個,最後一個和學生變量,而不是查詢中名稱,姓氏和年齡的實際列。 – 2012-04-25 16:58:45
好吧,我看到發生了什麼。您正試圖填充查詢w /未定義的變量。錯誤發生在queryoutCell調用firstname而不在cfoutput的行中。在查詢中沒有任何數據,它沒有任何關係,它必須確保你沒有定義「first」,「last」或「studentage」,但你試圖使用它們的值填充查詢。 – 2012-04-25 17:01:02
感謝您的回覆肖恩。這些變量是定義的,我只是沒有包含上面的代碼片斷。因此,我所說的是,例如,條目1到10將顯示,但是條目11將缺少名字,然後會彈出CF錯誤。 – Mike 2012-04-25 17:04:13