想做一个依点击次数排序,只显示前4个记录的产品展示. 如果所有产品点击次数不同的话,这段代码能够实现这个要求;如果点击次数有相同的话,会出现以下情况:
前4条记录中,如果有跟第四条记录相同的话, 显示将会列出所有跟第四条记录相同的记录
比如说,数据库中一共有6条记录: product1-product6, 其中 product1 被点击3次 product2 被点击2次
其余4个各被点击1次
显示记录的时候会把所有的记录都显示!
请教,如果点击次数相同的话,如何才能只显示其中一条记录!!!!
先谢谢啦
下面有附图和代码!!!
======================
<%
set rs_Product=server.createobject("adodb.recordset")
sqltext="Select top 4 * from Product where Passed=True And Elite=True order by Hits desc"
rs_Product.open sqltext,conn,1,1
%>
<br>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td></td>
</tr>
<%row_count=1 %>
<tr align="center">
<% Do While Not rs_Product.EOF%>
<td>
<table width="100%" height="105" border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="23%"><div align="center">
<table width="102" height="102" border="0" cellpadding="0" cellspacing="1" bgcolor="#CECECE">
<tr>
<td bgcolor="#F7F3F7"><div align="center"><a href="ArticleShow.asp?ArticleID=<%=rs_Product("articleid")%>"><img src=<%=rs_Product("DefaultPicUrl")%> width=160 height=165 border=0 align="absmiddle"></a></div></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td><div align="center">點閱<%=rs_Product("Hits")%>次</div></td>
</tr>
</table></td>
<%if row_count mod 4 <>0 then%>
<%end if%>
<%
rs_Product.MoveNext
row_count=row_count+1
Loop
rs_Product.close
%>
解决方法:
Select top 4 * from Product where Passed=True And Elite=True order by Hits desc,id desc"
上下篇: ASP实现拼音首字母排序函数 查询值的数目与目标字段中的数目不同