循环或输出中的最后和第一个内容(coldfusion)

时间:2011-02-21 10:19:49

标签: database loops coldfusion

我想知道是否有可能显示从ColdFusion中的Loop或Output中获取的特定内容,例如我有一个输出:

<cfoutput query="get_service_plus"><b>#SUBJECT#</b><br/>#plus_content#<br/></cfoutput>

及其查询,以防万一:

<cfquery name="GET_SERVICE_PLUS" datasource="#DSN3#">
    SELECT 
        *
    FROM 
        SERVICE_PLUS
    WHERE   
        SERVICE_ID = #attributes.action_id#
      <cfif isDefined("GET_SERVICE_PLUS.SERVICE_PLUS_ID")>
        AND SERVICE_PLUS_ID = #GET_SERVICE_PLUS.SERVICE_PLUS_ID#
      </cfif>
      ORDER BY PLUS_DATE DESC,RECORD_DATE DESC
</cfquery>

我知道我很可能应该使用循环从db获取特定内容但无法理解如何实现它... thx求助!

2 个答案:

答案 0 :(得分:14)

你可以做几件事。

如果循环完整查询,可以使用变量“qet_service_plus.currentrow”检查当前行号,所以

<cfif qet_service_plus.currentrow eq 1>
   <!--- do first row display stuff --->
</cfif>

每个查询都会出现查询中返回的记录数。你可以在“recordcount”中找到它,所以

<cfif get_service_plus.currentrow eq get_service_plus.recordcount>
   <!--- do last row display stuff --->
</cfif>

如果要在不经过完整查询的情况下访问查询中的特定记录,可以将cfquery视为关联数组。例如

<cfoutput>
<!--- service id in first record --->
#get_service_plus['service_id'][1]# 
<!--- service id in last record --->
#get_service_plus['service_id'][get_service_plus.recordcount]# 
</cfoutput>

答案 1 :(得分:0)

我认为这应该从CF的角度来看:

<cfoutput query="get_service_plus">

  <cfif get_service_plus.currentRow eq 1 or i eq get_service_plus.recordCount>
    <b>#SUBJECT#</b><br/>#plus_content#<br/>
  </cfif>

</cfoutput>

一旦恢复了初始记录集,您也可以使用查询查询来执行此操作。

我建议你尝试像你建议的那样抓住数据库层的第一行和最后一行,因为这样更有效,特别是对于大型记录集。

希望有所帮助。