последний и первый контент в цикле или выводе (coldfusion) - PullRequest
7 голосов
/ 21 февраля 2011

Интересно, можно ли отобразить определенный контент, взятый из цикла или вывода в ColdFusion, например, у меня есть вывод:

<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>

я знаю, что, скорее всего, мне следует использовать циклы для получения конкретного контента из БД, но я не мог понять, как этого добиться ... спасибо за помощь!

Ответы [ 2 ]

14 голосов
/ 21 февраля 2011

Есть несколько вещей, которые вы можете сделать.

Если вы зацикливаете завершенный запрос, вы можете проверить текущий номер строки, используя переменную "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>
0 голосов
/ 21 февраля 2011

Я думаю, что это должно быть сделано с точки зрения 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>

Вы также можете сделать это, используя запрос запросов, как только вы вернете исходный набор записей.

Я бы посоветовал вам попытаться взять первую и последнюю строку на уровне базы данных, как вы предлагаете, поскольку это гораздо более эффективно, особенно для больших наборов записей.

Надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...