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 に答える