Coldfusion cfloop空查询条件?

Coldfusion cfloop空查询条件?,coldfusion,cfloop,Coldfusion,Cfloop,我有下面的ColdFusion代码,它从数据库获取信息并在主页上显示结果。以下是cfquery代码: <cfquery name="getSchedule" datasource="#APPLICATION.datasource#" dbtype="odbc"> SELECT * FROM SCHEDULE_Days SD LEFT JOIN SCHEDULE_ScheduledClasses SSC ON SD.day_id = SSC.day_id LEFT JOIN SCHE

我有下面的ColdFusion代码,它从数据库获取信息并在主页上显示结果。以下是cfquery代码:

<cfquery name="getSchedule" datasource="#APPLICATION.datasource#" dbtype="odbc">
SELECT * FROM SCHEDULE_Days SD 
LEFT JOIN SCHEDULE_ScheduledClasses SSC ON SD.day_id = SSC.day_id
LEFT JOIN SCHEDULE_Classes SC ON SSC.class_id = SC.class_id
WHERE SD.day_date = #createODBCDate(now())# AND SSC.schedule_cancelled = 0
ORDER BY SSC.start_time
</cfquery>
和输出代码:

<cfoutput>
<cfloop query="getSchedule">
<tr>
<td width="40">&nbsp;</td>
<td width="74">#lcase(timeFormat(start_time,"h:mm tt"))#</td>
<td width="158">#class_name#</td>
</tr>
</cfloop>
</cfoutput>
问题是,如果getSchedule中没有包含任何数据,即没有ScheduledClass,它将不显示任何内容


我正在寻找一种方法来改变这一点,以便在没有数据显示的情况下,我可以指定一条消息和代码在没有数据的情况下显示。

使用recordCount来检测查询是否有任何记录


<cfif getSchedule.recordcount gt 0>
.... do something
</cfif>

首先是一个快速的CF提示,您可以通过以下方式使代码变得更好:

<cfif getSchedule.recordcount GT 0>
    <cfoutput query="getSchedule">
    <tr>
        <td width="40">&nbsp;</td>
        <td width="74">#lcase(timeFormat(getSchedule.start_time,"h:mm tt"))#</td>
        <td width="158">#getSchedule.class_name#</td>
    </tr>
    </cfoutput>
<cfelse>
    <p>Empty record message here</p>
</cfif>
我将查询输出放在第一位的原因很可能是,与使用空集消息相比,这种情况会发生得更多

<cfif getSchedule.recordcount>
.... do something
</cfif>

同样有效,gt 0无需阅读CFQUERY甚至CFLOOP上的文档,因为脚注中有一条注释可以让您自己回答这个问题-1,抱歉。Adam非常感谢你的坦率-我继承了这个代码库,对ColdFusion的了解非常少。这将生成无效的HTML-表中不能有P。可能要使用…msg。。。相反
<cfif getSchedule.RecordCount>
<table>
<cfoutput query="getSchedule">
<tr>
<td width="40">&nbsp;</td>
<td width="74">#lcase(timeFormat(start_time,"h:mm tt"))#</td>
<td width="158">#class_name#</td>
</tr>
</cfoutput>
</table>
<cfelse>
<p>There are currently no records</p>
</cfif>