Variables 对循环中的变量进行计数
我想计算变量并在代码中的某个地方显示它。我有一个循环:Variables 对循环中的变量进行计数,variables,loops,coldfusion,Variables,Loops,Coldfusion,我想计算变量并在代码中的某个地方显示它。我有一个循环: <cfloop query="get_serial"> <cfif PROCESS_ID eq attributes.action_id> #SERIAL_NO# </cfif> </cfloop> 及其查询: <cfquery name="get_serial" datasource="#dsn3#"> SELECT * FROM SERVICE_GUARANTY_NEW
<cfloop query="get_serial">
<cfif PROCESS_ID eq attributes.action_id> #SERIAL_NO# </cfif>
</cfloop>
及其查询:
<cfquery name="get_serial" datasource="#dsn3#">
SELECT *
FROM SERVICE_GUARANTY_NEW
WHERE STOCK_ID = #attributes.action_row_id#
ORDER BY SERIAL_NO
</cfquery>
一切都很好,但我想计算到底显示了多少变量。实际上我想这样做,因为我缺少数据库变量。实际上,可以从数据库中获取这些变量的数量,我只是不知道应该使用哪些变量。这就是我想手动计数的原因。如果我理解正确,您可以使用循环中的计数器进行计数
<cfset counter = 0 />
<cfloop query="get_serial">
<cfif PROCESS_ID eq attributes.action_id>
#SERIAL_NO#
<cfset counter ++ />
</cfif>
</cfloop>
<cfoutput>Output #counter# times!</cfoutput>
编辑:回答您的后续问题:
希望有帮助 ColdFusion公开了一个变量,该变量告诉您查询中返回了多少行,而无需运行循环进行计数:
<cfquery name="get_serial" datasource="#dsn3#">
SELECT *
FROM SERVICE_GUARANTY_NEW
WHERE STOCK_ID = #attributes.action_row_id#
ORDER BY SERIAL_NO
</cfquery>
<cfoutput>There are #get_serial.recordCount# rows.</cfoutput>
<cfoutput query="get_serial">
<p>#get_serial.serial_no#</p>
</cfoutput>
这里有另外两个答案,只是为了好玩:,尽管拥有计数器可能是最好的方式,因为使用循环已经会带来性能上的损失
<cfquery name="getCount" dbtype="query">
SELECT PROCESS_ID FROM get_serial WHERE PROCESS_ID = #attributes.action_id#
</cfquery>
<cfset total = getCount.RecordCount />
使用列表,总是很有趣:
<cfset total = ListValueCount(ValueList(get_serial.PROCESS_ID), attributes.action_id) />
重点是,有多种方法可以解决这类问题,所以请玩得开心:谢谢!这比看起来容易:你能解释一下,如果循环在底部,我如何在页面顶部显示计数器吗?我在答案中添加了这一点-使用cfsavecontent。
<cfset total = ListValueCount(ValueList(get_serial.PROCESS_ID), attributes.action_id) />