0

我有以下 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 中不包含任何数据(即,没有 ScheduledClasses),它不会显示任何内容。

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

4

4 回答 4

11

首先只是一个快速的 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>

我将查询输出放在首位的原因很可能比您的空集消息更容易发生。

于 2011-08-25T03:30:34.953 回答
1
<cfif getSchedule.recordcount>
.... do something
</cfif>

也可以工作,不需要 gt 0

于 2011-08-25T04:45:15.740 回答
0

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


<cfif getSchedule.recordcount gt 0>
.... do something
</cfif>
于 2011-08-25T03:09:18.530 回答
0
<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>
于 2011-08-26T14:01:23.877 回答