首 页
|
域名注册
|
虚拟主机
|
网站制作
|
网站案例
|
网站优化
|
网站推广
|
企业邮局
|
服务器租用
|
广告设计
首页
域名注册
虚拟主机
网站建设
企业邮局
网站优化
网站备案
服务器租用
其它服务
百度竞价排名
yahoo搜索
Google搜索
新浪搜索引擎
搜狐搜索引擎
网易搜索引擎
创新互联专业百度关键词优化,百度排名优化,百度快照优化,网站建设的互联网企业!
域名注册
中文域名
英文域名
通用网址
域名解析
域名转入\转出
虚拟主机
主机购买
管理主机
FTP上传
数据库管理
主机续费升级
网站建设
建站流程介绍
网站设计
网站改版
网站维护
网站推广
企业邮局
邮箱使用
管理邮箱
邮箱续费升级
全球邮局
网站优化
seo优化
seo技巧
收索引擎优化
关键词优化
网站备案
备案流程指南
修改备案
备案资料下载
备案小技巧
服务器租用
服务器租用
服务器托管
其它服务
400电话
在线客服
财务常见问题
会员常见问题
您现在的位置:
创新互联
>>
网站建设
>> 网站建设常见问题 >> 网站建设中asp提取随机记录
网站建设中asp提取随机记录
作者:谭小姐 文章来源:网站开发部 点击数:685 更新时间:2010-11-8
网站建设
技术asp随机提取记录方法介绍首先看看pjblog中随机记录插件的实现方法'Item_rs在前面得到的需要取出的记录数
Random_sql="。。。"'(省略)
Random_rs.openRandom_sql,conn,1,1
'=========================================
Count_rs=Random_rs.RecordCount'----记录总数
Item_rs=LoadModSet.getKeyValue("RandomPage")'---------随机显示记录
array_rs=Random_rs.getrows(Count_rs)'-------将记录集放入数组array_rs中
Randomize'---------初始化随机数生成器。
forRandom_i=0toItem_rs'----循环显示Item_rs条记录
'******************************************************************
'下面这个for是用来如果随机数j有重復就重新生成随机数j,没重復会退出这个for循环
'下面的ubound(array_rs,2)是数组最大下标,相当记录总数
forRandom_m=0toubound(array_rs,2)
Random_j=int(rnd*Count_rs)'------在记录总数范围内生成随机数j
array_str=split(str,",")'----str字符串用来记录以前生成的随机数j,这里将str折成数组用来和新的j比较
'====================================================
'下面这个for是用来检测新生成的随机数j和以前生成的随机数对比,
'如果有相同就退出这个for回头重新生成随机数j
forRandom_n=0touBound(array_str)
ifcstr(Random_j)=cstr(array_str(Random_n))then
new_j=false'----如果比较后这个新j与前面的有相同,将new_j设為false并退出for
exitfor
else
new_j=true'---如果没相同的我们设new_j為true
endif
next
'====================================================
ifnew_j=truethenexitfor'----new_j為true说明这个j没有相同的,不须重新生成随机数j,我们退出for
Next
'******************************************************************
str=str&Random_j&","'----str是记录前面生成的随机数j并用,号隔开方便折成数组
'。。。。。
'省略部分
Next可以看到,虽说只用了一句sql,但执行效率较低(在数据数量超过一定值时)
他的方法也是目前网上最常用到的方法,得到记录范围,在范围中生成随机数,应需要的记录条数,取出无重复的记录,用到了3个嵌套的循环,第一层,循环 Item_rs
次,第二层理论上在每次的上级循环中,只循环一次,不过最多不会超过10次的,第三层只是一个判断,在每次的上级循环中,会按第一次循环数递增。
按道理上说,一般在一个只有三五百至上千数据中取个十条八条是没什么影响的,但是如果取出20-100条做动态滚动或切换展示,或记录总数超过一万以上,哪就可想而知了,不过这一次我都没有去测试!
<注:不知道查询怎么写的可能提取了所有记录速度可能会比较慢>
否定了上面的思路后,我继续寻找我的答案~。。。又看到了一个方法:yourstr="*1*3*4*6*12*...."
sql="selecttop10*formyourdbwhereinstr('*'&id&'*','"&yourstr&"')<>0不可取,因为随机ID的范围不知道,yourstr中,随机生成一组ID,如10个,很有可能只有部分在当前数据记录的范围中,也就是很难满足设计者的需求取出指定条数!不过思路比较不错!<这个是不错的办法,应该也比较容易指定条数> 继续,还有一方法:n=10''取任意10条记录
setrs=server.CreateObject("adodb.recordset")
sql="select*fromtable"
rs.opensql,conn,1,1
count=rs.recordcount''记录总数
IFCount<>emptyThen
Randomize
fori=1ton''循环n次
num=Fix(Rnd*count)''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
rs.movenum''移到改随机行
Response.writers(0)''出该条记录
rs.movefirst''别忘了再把指针移到第一条
next
EndIF
rs.close
setrs=nothing
上一篇文章:
网站建设中png 8 png24 png32 区别与联系
下一篇文章:
ASP代码加密解密三大方法
分享到:
QQ空间
新浪微博
腾讯微博
人人网
开心网
百度搜藏
腾讯微博
网易微博
创新互联
|
网站建设
|
网站案例
|
域名注册
|
网站空间
|
jsp虚拟主机
|
优化排名
|
服务器租用
|
云主机
|
网站营销推广
|
数据库知识
|
域名转入\转出
优化电话:028-86922220 13518219792 公司地址:成都市太升南路288号锦天国际A幢1002号
支持信箱:service@cdxwcx.com 版权所有:创新互联-供最优势的网站制作 蜀ICP备13010860号
创新互联成都网站建设公司:网页设计 成都网站制作 成都网站开发 asp提取随机记录显示