이 게시물을 무시하십시오. 여기에 내 문제에 대한 명확한 예를 만들었습니다. 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 개의 항목이 있습니다.
사용할 수있는 데이터가있을 때 코드는 아름답게 작동합니다. 그러나 누락 된 데이터가 있으면 코드가 손상됩니다. 그 말은 Entry 11에 first[x]
변수의 이름이 없다면 "Element first is undefined. The error occurred on line 5
의 줄을 따라 오류가 발생합니다 (줄 5는 이름의 항목입니다).
이 경우 결과에서 내 항목 11 (및 오류를 유발하는 다른 모든 항목)을 생략하고 오류가 표시되지 않도록하고 싶습니다. 어떻게해야합니까?
명확화 : 데이터가 정의되어 있다고 가정하십시오. 외부 데이터 소스를 사용하고 있기 때문에 조금 털이 나옵니다. 하지만 내가 말하는 것은 1 ~ 10 번 항목이 나타난다는 것입니다. 11 번 항목이 돌아 왔을 때 오류가 발생했습니다.
첫 번째, 마지막 및 학생 변수는 어디에 정의되어 있습니까? 50 개의 동일한 데이터가 포함 된 쿼리를 만드는 것으로 보입니다. 또한 "데이터"쿼리를 반복하지만 firstname, lastname 및 age 인 쿼리의 실제 열 대신 첫 번째, 마지막 및 studentage 변수를 표시합니다. –
그래, 무슨 일이 일어나는 지 알 겠어. 정의되지 않은 변수가있는 쿼리를 채우려고합니다. 오류는 cfoutput 내의 행이 아닌 firstname에 대한 querySetCell 호출에서 발생합니다. 그것은 데이터가없는 질의에서 행을 사용하지 않고 "first", "last"또는 "studentage"를 정의하지 않았지만 그 값을 사용하려고합니다. 쿼리를 채 웁니다. –
답장을 보내 주셔서 감사합니다. 그 변수들은 정의되어 있고, 나는 위의 코드 스 니펫을 포함하지 않았다. 내가 말하는 것은 예를 들어, 1 ~ 10 번 항목이 표시되지만, 11 번 항목에는 이름이 없기 때문에 CF 오류가 나타납니다. – Mike