讨论一下图片轮换时的1,2,3,4....问题

bsk_bg 2009-07-30 05:46:28


set rs=server.CreateObject("adodb.recordset")
sql="select top 5 * from table1 order by id"
rs.open sql,conn,1,1
j=1

do while not rs.eof
if j<5 then
%>
pics=pics+"<%=rs("pic")%>"+"|"
links=links+escape("<%=rs("url")%>")+"|"
texts=texts+"<%=rs("title")%>"+"|"
<%
else
%>
pics=pics+"<%=rs("pic")%>"
links=links+escape("<%=rs("url")%>")
texts=texts+"<%=rs("title")%>"
<%
end if
rs.movenext
j=j+1
loop
rs.close
%>



就是以上的问题中,当前取的是5条记录,这是一个图片轮换的问题。当正好5张的时候图片输出为最后一条记录后面不带"|"

问题就是当不够5张时,怎么来判断不让最后一条记录带"1"

大家来讨论一下。
...全文
68 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
renzaijiang 2009-07-31
[Quote=引用 2 楼 lihui_shine 的回复:]
这样就OK了
VBScript codeif j==1then
%>
pics=pics+"<%=rs("pic")%>"
links=links+escape("<%=rs("url")%>")
texts=texts+"<%=rs("title")%>"<%else
%>
pics=pics+"|"+"<%=rs("pic")%>"
links=links+"|"+escape("<%=rs("url")%>")
texts=texts+"|"+"<%=rs("title")%>"<%endif
[/Quote]
原理 第一条记录
+"|"+第i条记录(1<i<=5) 没有问题啊
回复
bsk_bg 2009-07-31
[Quote=引用 13 楼 lingfeng179 的回复:]
因为你的j <5,j开始为1,你怎么可能读出第五条记录啊
你可以求余数 j%5,当余数==0是正好整除
余数不为0是你可一让最后不显示‘|’
[/Quote]

看到的判断没,当共有5条记录时 1234分别后面都有"|" 当为第5张时。最后输出就不带"|" 了
回复
lingfeng179 2009-07-30
因为你的j<5,j开始为1,你怎么可能读出第五条记录啊
你可以求余数 j%5,当余数==0是正好整除
余数不为0是你可一让最后不显示‘|’
回复
bsk_bg 2009-07-30
当J< 5张的时候要的就是 pics|pics2|pics3|pics4 这样的效果.在最后一张的后面不能有"|" 就是这么个意思..而上面给出的答案我试了一下.直接输出下面的那个了. 结果就是图片切换什么也显示不出来
回复
toury 2009-07-30
汗~10楼也错。看这个:((

<%
set rs=server.CreateObject("adodb.recordset")
sql="select top 5 * from table1 order by id"
rs.open sql,conn,1,1
j=1
do while not rs.eof
%>
pics=(<%=j%>==1)?"<%=rs("pic")%>" : pics+"|"+"<%=rs("pic")%>";
links=(<%=j%>==1)?escape("<%=rs("url")%>") : links+"|"+escape("<%=rs("url")%>");
texts=(<%=j%>==1)?"<%=rs("title")%>" : texts+"|"+"<%=rs("title")%>";
<%
rs.movenext
j=j+1
loop
rs.close


%>
回复
toury 2009-07-30
8楼发错了,看这个

<%
set rs=server.CreateObject("adodb.recordset")
sql="select top 5 * from table1 order by id"
rs.open sql,conn,1,1
j=1
do while not rs.eof
%>
pics=(<%=j%>==1)?"<%=rs("pic")%>" : pics+"|"+"<%=rs("pic")%>";
links=(<%=j%>==1)?escape("<%=rs("url")%>") : pics+"|"+escape("<%=rs("url")%>");
texts=(<%=j%>==1)?"<%=rs("title")%>" : pics+"|"+"<%=rs("title")%>";
<%
rs.movenext
j=j+1
loop
rs.close

%>
回复
其实把
if j<5 then
%>
pics=pics+"<%=rs("pic")%>"+"|"
links=links+escape("<%=rs("url")%>")+"|"
texts=texts+"<%=rs("title")%>"+"|"
改为
if j=1 then
%>
pics="<%=rs("pic")%>"
links=escape("<%=rs("url")%>")
texts="<%=rs("title")%>"
就好了
回复
toury 2009-07-30

<%
set rs=server.CreateObject("adodb.recordset")
sql="select top 5 * from table1 order by id"
rs.open sql,conn,1,1

do while not rs.eof
%>
pics=(<%=j%>==1)?"<%=rs("pic")%>" : pics+"|"+"<%=rs("pic")%>";
links=(<%=j%>==1)?escape("<%=rs("url")%>") : pics+"|"+escape("<%=rs("url")%>");
texts=(<%=j%>==1)?"<%=rs("title")%>" : pics+"|"+"<%=rs("title")%>";
<%
rs.movenext
loop
rs.close
%>

回复
浪尖赏花 2009-07-30
[Quote=引用 5 楼 bsk_bg 的回复:]
二楼的哥哥错了吧。要是当前是3张呢?
[/Quote]
随便你几张,LZ试下看看
回复
bsk_bg 2009-07-30
谁能把原理详细说一下。谢谢了。
回复
bsk_bg 2009-07-30
二楼的哥哥错了吧。要是当前是3张呢?
回复
junyi2003 2009-07-30
只要不是没记录,自动缩一个字符不就可以了
楼上已经说了,真是的。
回复
bsk_bg 2009-07-30
不太明白,能稍再加指点吗
回复
浪尖赏花 2009-07-30
这样就OK了
if j==1 then
%>
pics=pics+"<%=rs("pic")%>"
links=links+escape("<%=rs("url")%>")
texts=texts+"<%=rs("title")%>"
<%
else
%>
pics=pics+"|"+"<%=rs("pic")%>"
links=links+"|"+escape("<%=rs("url")%>")
texts=texts+"|"+"<%=rs("title")%>"
<%
end if
回复
孟子E章 2009-07-30
你应该将pics保存到一个变量里面,判断变量啊。Right(pics,1) = "|"
js里面也可以判断啊。
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告