ASP数据库读取和函数 (回答正确加分50)

来源:百度知道 编辑:UC知道 时间:2024/05/12 08:01:48
1.<%set rs=server.CreateObject("adodb.recordset")
sql="select * from pic order by id"
rs.open sql,conn,1,1
do where rs.eof
tmp=rs("id")
%>
<% if tmp>num then %>
<img src="<%=rs("pic")%>" width=120 />

<%
exit do
end if %>
<%
rs.movenext
loop
rs.close
set rs=nothing
%>
num是个全局变量代表大图片的id,tmp是个临时变量代表当前图片的id。
想实现的是当id>大图片的id的时候,显示小图片并退出循环

但是好像实现不了啊,我输出了一下,num可以正常输出一个数字,tmp也可以正常输出一个数字,但是为什么用if判断的时候,不行呢?
高手给解释解释。

2.用类似的代码实现输出跟大图片id前5个和后5个的图片,怎么实现?
第二个问题是这样的:我把图片的id作为网址,如photo.asp?id=10
那么此页显示id为10的图片。
然后再在id下面显示此id前5个,和后5个id的图片缩略图。
如何实现,关于第一个问题的回答我试试啊。

如果能输入数字,就代表赋值是正确的,可能变量类型不统一,用clng转换一下应该可以了!

do while not rs.eof
tmp=rs("id")
%>
<% if clng(tmp)>clng(num) then %>
<img src="<%=rs("pic")%>" width=120 />

<%
exit do
end if %>
<%
rs.movenext
loop

第二个问题的意思不太明白,说明白一下!

第一个问题是你的数据类型不对,你数据库存放的不是数字型,是字符型,所以你要转换下,就像一楼说的

第二个问题不是很明白,不知道我的理解是不是就是你的理解,回家再解决问题。呵呵

继续来回答你第二个问题,我就是那么理解你的意思,
你读数据的时候加个判断10的前五条记录:
select * from TABLE where id<10 order by desc
后五个记录:
select * from TABLE where id>10

if trim(tmp)>trim(num ) then
.....
end if

把变量 加上 trim 函数 试试