Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 仅在项目不是最新的情况下显示?_Coldfusion_Coldfusion 9 - Fatal编程技术网

Coldfusion 仅在项目不是最新的情况下显示?

Coldfusion 仅在项目不是最新的情况下显示?,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,所以我们有一个新闻/公告功能,可以从数据库中提取信息并显示出来 <cfquery name="announcement" datasource="#application.datasource#" dbtype="odbc"> SELECT top 2 * FROM NewsEvents WHERE type = 2 AND active = 1 AND publish_datetime <= #now()# AND show_on_home = 1 AND item_date

所以我们有一个新闻/公告功能,可以从数据库中提取信息并显示出来

<cfquery name="announcement" datasource="#application.datasource#" dbtype="odbc">
SELECT top 2 * FROM NewsEvents
WHERE type = 2 AND active = 1 AND publish_datetime <= #now()# AND show_on_home = 1 AND item_datetime >= #createOdbcDate(now())#
ORDER BY item_datetime ASC
</cfquery>
我们试图做的是在这些公告块中显示一段HTML,条件是两个块中的一个不是两个块中最新的

HTML被包装在以下代码中:

<cfif announcement.recordCount gt 0>
<cfloop query="announcement">
<cfoutput>
html
</cfoutput>
</cfloop>
<cfelse>
<cfoutput><p>There are currently no announcements.</p></cfoutput>
</cfif>

我希望HTML的一个组件只在底部公告中显示,它不是item_datetime中最接近的组件。关于如何实现这一点,您有什么想法吗?

您是按日期订购的,所以只需执行以下操作:

<cfif CurrentRow EQ 1>
    We're showing the first record, so show some stuff.
</cfif>

您正在按日期ASC排序,因此最早的记录是第一个,而较新的记录是最后一个。我建议您将排序改为DESC,否则,在前两个公告之后添加第三个公告后,您将永远无法获得更新的记录。然后,您可以将它们放在CF端,使其符合您所追求的显示顺序。

您可以像这样向CFQUERY语句添加一个修饰符。我还将修改您的CFIF recordCount语句,以在此时查找多条记录

<cfif announcement.recordCount gt 1>
   <cfoutput query="announcement" startRow="2">
      <!--- Throw my output here --->
   </cfoutput>
<cfelse>
   <p>There are currently no announcements.</p>
</cfif>

很难破译措辞,但可能是他们想要的?是的,我也很难弄清楚他们到底想要什么。因为他们在整理ASC,最下面的是最新的列表。我不知道他是否想在这两个项目之间划一条线。。。在这种情况下,它可能是-事实上,如果你真的想优化这个。。。放下CFOUTPUT包装,将CFLOOP更改为CFOUTPUT。到目前为止,有一些很好的建议。但是你的评论不是最接近的,可以澄清一下。另外,如果查询只返回一条记录,那么所需的结果是什么?
<cfif announcement.recordCount gt 1>
   <cfoutput query="announcement" startRow="2">
      <!--- Throw my output here --->
   </cfoutput>
<cfelse>
   <p>There are currently no announcements.</p>
</cfif>