coldfusion-缺少条目的CFLoop错误

请忽略此帖子.我在这里为我的问题做了一个更清晰的例子:
Error with CFLoop When Entries Are Missing

我正在运行下面的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]变量列出名称,则会在“未定义元素优先”这一行出现错误.该错误发生在第5行

(第5行是名字的输入).

发生这种情况时,我想从结果中省略条目11(以及所有其他导致错误的条目),并防止显示错误.我怎样才能做到这一点?

说明:请假定数据已定义.因为我使用的是外部数据源,所以它变得有些毛茸茸.但是我的意思是出现条目1到10.当它的条目11转向时,即出现错误.

最佳答案
在循环中使用外部数据库的recordcount应该可以避免错误.

<cfloop index="x" from="1" to="#ExternalDatabaseQuery.RecordCount#">

假设您确实在内存中存储了查询,那么更好的解决方案是使用查询查询.

<cfquery dbtype='query' name='data'>
SELECT SID, First AS FirstName, Last AS LastName, Age AS StudentAge
FROM ExternalDatabaseQuery
</cfquery>

转载注明原文:coldfusion-缺少条目的CFLoop错误 - 代码日志