2012-01-07 93 views
2

我们有一个函数来拉RSS提要,并使用此代码显示ColdFusion页上的帖子:cffeed功能:显示最近的帖子?

<cfset rssUrl = "rss1"> 
<cffeed action="read" source="#rssUrl#" query="fitness" properties="info"> 

<cfset rssUrl2 = "rss2"> 
<cffeed action="read" source="#rssUrl2#" query="nutrition" properties="info"> 

<cfif #fitness.PUBLISHEDDATE# gt #nutrition.PUBLISHEDDATE#> 
<cfset entries="fitness"> 
<cfelse> 
<cfset entries="nutrition"> 
</cfif> 

输出通过完成:

<cfoutput query="#entries#"> 

问题是,RSS源有几个职位,我们只想展示一个。任何想法如何让它拉和只显示最近的帖子? (我们希望饲料有多个职位,所以现在我们的非理想的解决办法是设置每路最高职位为1)

+1

顺便说一句,在你的'cfif'的主题标签是不必要的。这是你应该有的:''。 – ale 2012-01-07 20:04:37

回答

2

cfoutput/query=".."会在整个查询。如果您只想执行第一行,请使用:

<cfoutput> 
Title from row 1: #somequery.title[1]# 
</cfoutput> 

基本上是列上的数组表示法。合理?

+0

您也可以将maxRows =“1”添加到您的代码中。这“感觉”是错误的,但它有效。 ;) – 2012-01-07 17:11:32

+0

这两个问题。是否有任何真正的原因,为什么maxRows不应该在这里使用?老实说,它更容易... – Nietzsche 2012-01-07 17:17:34

+0

我真的选择了'MAXROWS =“1”'选项。当您想要将其更改为显示两行时更改的代码较少。 – ale 2012-01-07 20:05:56

2

这没有什么错Ray's answer的,但这里有一些其他的选择。

<cfoutput query="#entries#" maxrows="1"> 

信息最少的干扰,以现有的代码,并在你决定要改变显示的行数(例如,通过用户设定),这是一个简单的变化。

OR

如果复制的查询对象,而不是查询名称(这实际上不是一个副本,但引用的副本)的

<cfset entries = "fitness"> 

<cfset entries = fitness> 

代替

你可以做到这一点

<cfoutput> 
    #entries.columnName1# 
    #entries.columnName2# 
    <!--- etc. ---> 
</cfoutput> 

这将在默认情况下,仅显示所述查询的第一行。

相关问题