Random ASP-在eof或bof时循环-从idproduct中选择随机产品,但跳过空ID
我试图显示access数据库中的随机产品图像和描述,因此我选择最高的idproduct,然后将1和%highestid%之间的数字随机化,这就是我目前所拥有的Random ASP-在eof或bof时循环-从idproduct中选择随机产品,但跳过空ID,random,asp-classic,Random,Asp Classic,我试图显示access数据库中的随机产品图像和描述,因此我选择最高的idproduct,然后将1和%highestid%之间的数字随机化,这就是我目前所拥有的 IF frontpage = 1 then SQLSTR = "SELECT idproduct AS prodtot FROM products order by idproduct desc" Set objRS = Server.CreateObject("ADODB.Recordset") SET objrs = oconn.
IF frontpage = 1 then
SQLSTR = "SELECT idproduct AS prodtot FROM products order by idproduct desc"
Set objRS = Server.CreateObject("ADODB.Recordset")
SET objrs = oconn.execute(SQLSTR)
' Check result
Response.Write objRS("prodtot")
' attach
ntop = objRS("prodtot")
Randomize
' Generate random value between 1 and nTop .
nRandom= Int((nTop * Rnd) + 1)
sqlstr = "select * from products where idProduct = " & nRandom
response.Write"<br /><br />" & (sqlstr) & "<br /><br />"
'SET rs = oConn.execute(randomprod)
SET rs = oconn.execute(SQLSTR)
pranproddesc = rs("description")
response.Write(pranproddesc)
pranprodimg = rs("smallImageUrl")
end if
如果frontpage=1,则
SQLSTR=“按idproduct desc从产品订单中选择idproduct作为prodtot”
Set objRS=Server.CreateObject(“ADODB.Recordset”)
设置objrs=oconn.execute(SQLSTR)
"检查结果,
响应。编写OBJR(“prodtot”)
“附上
ntop=objRS(“prodtot”)
随机化
'生成介于1和nTop之间的随机值。
nRandom=Int((nTop*Rnd)+1)
sqlstr=“从产品中选择*,其中idProduct=“&nRandom
响应。写“
”和(sqlstr)和“
”
'设置rs=oConn.execute(randomprod)
设置rs=oconn.execute(SQLSTR)
pranproddesc=rs(“说明”)
响应写入(praproddesc)
pranprodimg=rs(“smallImageUrl”)
如果结束
到目前为止还不错!但我有一个问题,随着时间的推移,产品来了又去,我在%idproduct%中有很多差距,我尝试了循环而rs.eof,但它似乎没有做任何有用的事情,如果有的话。只是为了澄清我有idproduct 1、2、5、10、11、12等等,所以当它随机分配idproduct 3时,它都会上升到喷嘴!有人能帮忙吗
先谢谢你!:) 执行以下操作:
IF frontpage = 1 then
Set objRS = Server.CreateObject("ADODB.Recordset")
SET objrs = oconn.execute(SQLSTR)
sqlSTR = "SELECT TOP 1 * FROM products ORDER BY NEWID()"
response.Write"<br /><br />" & (sqlstr) & "<br /><br />"
SET rs = oconn.execute(SQLSTR)
pranproddesc = rs("description")
response.Write(pranproddesc)
pranprodimg = rs("smallImageUrl")
end if
如果frontpage=1,则
Set objRS=Server.CreateObject(“ADODB.Recordset”)
设置objrs=oconn.execute(SQLSTR)
sqlSTR=“按NEWID()从产品订单中选择TOP 1*”
响应。写“
”和(sqlstr)和“
”
设置rs=oconn.execute(SQLSTR)
pranproddesc=rs(“说明”)
响应写入(praproddesc)
pranprodimg=rs(“smallImageUrl”)
如果结束
sql将在sql Server中工作:查看此页面,SQL将为其他数据库返回随机行:
谢谢,顺便说一句,我学到了一些新的东西。与其选择一个随机的ProductId,不如从记录集中选择一个随机的行索引。这样,您只需访问数据库一次:)嗨,布拉瓦克斯,谢谢您的回答。。。。。这就是我得到的。。。。从products ORDER BY NEWID()中选择TOP 1*。Microsoft JET数据库引擎错误“80040e14”表达式中未定义函数“NEWID”。您使用的是什么数据库?访问?尝试:从按rnd的产品订单中选择top 1*(idproduct)或从按rnd的产品订单中选择top 1*(时间值(Now())*-10000000*[idproduct])