我正在尝试在cfscript
中循环查询。我想我已经拥有它了,但是查询循环到无穷大。
有人可以告诉我以下内容有什么问题:
<cfscript>
// loop single msg
variables.allRows = current_message.recordcount;
for ( variables.intRow = 1 ; variables.allRows LTE variables.intRow ; variables.intRow = variables.intRow + 1 ){
variables.msg_id_viewed = current_message[ "com_msg_id" ][ variables.intRow ];
variables.msg_app_alias = current_message[ "com_app_alias" ][variables.intRow];
variables.msg_img_ext = current_message[ "com_img" ][ variables.intRow ];
}
</cfscript>
查询current_message
返回单个记录,因此这应该仅循环一次。
感谢您的帮助!
答案 0 :(得分:9)
你的病情是错误的。
应该是:
variables.intRow LTE variables.allRows
我怀疑current_message
实际上有多行。您是否实际检查,或者您是否只是假设这是您所期望的?因为我认为variables.allRows LTE variables.intRow
正在评估false
,这表明variables.allRows
在您第一次开始时大于1。
关于这一点:
查询current_message返回单个记录,因此应该循环 只有一次。
如果只有一行 - 并且知道就是这种情况 - 为什么要循环?
那就是说,你在使用什么版本的ColdFusion?在CF10中,可以使用for / in构造循环记录集,因此:
for (row in recordset){
// row is a struct keyed on each column name, the values being the value for that column/row
}