以下代码有效,但我想显示“无记录”消息
<cfif GetResults2.csedept_id eq aFieldValue>
没有该值的记录。我试图打开一个计数器,但我不能让它显示'没有记录'而不显示
如果没有记录,则<thead> <th>Name</th> <th>Positive Comment</th> <th>Negative Comment</th></thead>
表格的标题。
如果结果显示为空,如何显示“无记录”并隐藏表头
现在,如果结果为空,则会显示“无结果”(正确)并显示标题(不正确)。
<cfset counter3= 0>
<table cellpadding="0" cellspacing="0" class="tablecolors">
<h2> Comments </h2>
<thead> <th>Name</th> <th>Positive Comment</th> <th>Negative Comment</th></thead>
<cfloop query="GetResults2">
<cfif GetResults2.csedept_id eq aFieldValue>
<tr>
<td nowrap="nowrap">#emp_namefirst# #Left(emp_namelast, 1)# </td>
<td>#Replace(commentpositive, emp_namefirst, "<B>" & emp_namefirst & "</B>")#</td>
<td>#Replace(commentnegative, emp_namefirst, "<B>" & emp_namefirst & "</B>")#</td>
</tr>
<cfelse><p>no records</p>
</cfif>
</cfloop>
</table>
更新:只是要添加我确实有上面的另一个查询,如@FRANK说,它做了几乎相同的事情,例如:
'<cfloop query="GetEmployeeTotals3">
<cfif GetEmployeeTotals3.csedept_id eq aFieldValue> '
这是查询:
select GetResults.* , GetEmployees.emp_namefirst, GetEmployees.emp_namelast
from GetResults, GetEmployees
where employee = emp_id
order by csedept_id
所以我尝试过的所有解决方案都无效。
答案 0 :(得分:0)
我建议使用查询查询将结果集缩小到您首先关注的值。然后你可以在输出表之前轻松检查记录计数。
或者,首先循环并使用cfsavecontent构建结果,然后检查在找到表位之前是否找到任何结果。
答案 1 :(得分:0)
编辑:问题澄清后更新的答案
在检查记录时,您需要移动cfif
以包括表头。如果检查带有记录计数,则输出表头以及结果,否则输出&#34;无结果&#34;。我在下面写了两个版本,一个是使用cfoutput
而不是一个循环(只是个人偏好),另一个是你的循环,如果你想保留它。
我添加了丹的listfind()
valuelist()
组合......所以请相信这一点。
修改编辑所以这是超强度/超正确的真棒解决方案,我已经厌倦了编辑 - 这个答案 - 50次 - -get-OP-an-answer&#39;,从上面/下面的Dan回答中得到无耻的盗窃。或者我们在哪里以订单方式结束。
<table>
<cfif getresults2.recordcount AND ListFind(ValueList(GetResults2.csedept_id), aFieldValue)>
<tr>
<th>name</th>
<th>positive comment</th>
<th>negative comment</th>
</tr>
<cfoutput query="getresults2">
<tr>
<td nowrap="nowrap">#emp_namefirst# #left(emp_namelast, 1)# </td>
<td>#replace(commentpositive, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
<td>#replace(commentnegative, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
</tr>
</cfoutput>
<cfelse>
<tr colspan="3">
<td><p>no records</p></td>
</tr>
</cfif>
</table>
如果您的代码中有cfoutput
(我们看不到的地方),那么这是您的cfloop
返回,只需将上面代码段中的cfoutput
替换为<cfloop query="getresults2">
<tr>
<td nowrap="nowrap">#emp_namefirst# #left(emp_namelast, 1)# </td>
<td>#replace(commentpositive, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
<td>#replace(commentnegative, emp_namefirst, "<b>" & emp_namefirst & "</b>")#</td>
</tr>
</cfloop>
{{1}}
答案 2 :(得分:0)
这样的事情应该有效。您必须设置showRecords
标志,以确定是否应显示标题。
<cfset showRecords = false>
<cfloop query="GetResults2">
<cfif GetResults2.csedept_id eq aFieldValue>
<cfset showRecords = true>
<cfbreak>
</cfif>
</cfloop>
<h2> Comments </h2>
<cfif showRecords>
<table cellpadding="0" cellspacing="0" class="tablecolors">
<thead> <th>Name</th> <th>Positive Comment</th> <th>Negative Comment</th></thead>
<cfloop query="GetResults2">
<cfif GetResults2.csedept_id eq aFieldValue>
<tr>
<td nowrap="nowrap">#emp_namefirst# #Left(emp_namelast, 1)# </td>
<td>#Replace(commentpositive, emp_namefirst, "<B>" & emp_namefirst & "</B>")# </td>
<td>#Replace(commentnegative, emp_namefirst, "<B>" & emp_namefirst & "</B>")#</td>
</tr>
</cfif>
</cfloop>
</table>
<cfelse>
<p>no records</p>
</cfif>
答案 3 :(得分:0)
虽然你的问题仍然不清楚,但这可能就是你想要的。
<cfif ListFind(ValueList(GetResults2.csedept_id), aFieldValue)>
your existing code to display results in a table
<cfelse>
<p>No Records Found</p>
请注意:
ListFind(ValueList(GetResults2.csedept_id), aFieldValue)
即使GetResults2根本没有记录,也会执行并返回false。
编辑从此处开始
根据此评论,&#34;如果只出现在某些显示屏上,那么对于那些不匹配的人则忽略&#34;将现有代码更改为:
<cfquery name = "q3" dbtype = "query">
select * from GetResults2
where csedept_id = #aFieldValue#
<cfquery>
<table>
column header row
<cfoutput query="q3">
data rows
</cfoutput>
<table>
此答案开头的初始构造仍然适用。