2011-08-25 5 views
0

다음 ColdFusion 코드는 데이터베이스에서 정보를 가져 와서 홈페이지에 결과를 표시합니다. getSchedule 내에 포함 된 데이터는 (즉, 더 ScheduledClasses가없는)는 아무것도 표시되지있을 경우cfloop 빈 쿼리 조건?

<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> 

문제이다 :

<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> 

출력 코드 다음은 올 cfquery 코드이다.

표시 할 데이터가없는 경우 부재시 표시 할 메시지와 코드를 지정할 수 있도록 변경하는 방법을 찾고 있습니다.

+1

CFQUERY에서 문서 읽기가 필요하지 않다고 당신이 대답 할 수있는 것이 바로 aswell 작동합니까 이건 너 자신을위한거야. -1, 죄송합니다. –

+0

솔직히 인정합니다. Adam -이 코드베이스를 상속 받았으며 ColdFusion에 대해 잘 알지 못했습니다. – Nietzsche

답변

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> 

이유 I를 쿼리 출력을 먼저 넣으면 빈 세트 메시지보다 더 많이 발생합니다.

+0

이것은 잘못된 HTML을 생성합니다 - 당신은'TABLE' 안에'P'를 가질 수 없습니다. 아마도 ' ... msg ...'대신 사용하고 싶을 것입니다. –

0

사용도 RecordCount 쿼리가 어떤 기록이 있는지 여부를 감지하는


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

이 (각주에서 취재 코멘트 거기로 또는 CFLOOP)한다 0

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>