, пожалуйста, не обращайте внимания на это сообщение. Я сделал более ясный пример своей проблемы здесь: 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 строками одинаковых данных. Кроме того, вы зацикливаете запрос «данные», но затем отображаете переменные first, last и studentage вместо фактических столбцов запроса, которые являются именем, именем и возрастом. –
ОК, я вижу, что происходит. Вы пытаетесь заполнить запрос w/переменную, которая не определена. Ошибка возникает при вызове querySetCell для первого имени, а не в строке внутри cfoutput. Нечего делать w/row в запросе, не имеющем данных, это должно быть сделано с учетом того, что вы не определили «первый», «последний» или «студент», но вы пытаетесь использовать их значения для заполнить запрос. –
спасибо за ваш ответ Шон. эти переменные определены, я просто не включил в него этот фрагмент кода. Итак, я говорю, что, например, будут показаны записи с 1 по 10, но если в записи 11 будет отсутствовать первое имя, а затем появится ошибка CF. – Mike