标题:[求助]如何去掉随机的重复记录!!
只看楼主
dkp88
Rank: 1
等 级:新手上路
帖 子:235
专家分:5
注 册:2004-10-18
结帖率:33.33%
 问题点数:0 回复次数:9 
[求助]如何去掉随机的重复记录!!
我这里是读取表中tm_tm字段中满足“111”的记录,比如我找到100条,我只想显示10条,而且不要记录TM_ID号重复显示,怎么实现,或者那位高手有更好的方法请写一下好吗,万分感谢)我现在的ASP程序如下: <% db="data\DKP.mdb" CONNSTR="provider=Microsoft.jet.oledb.4.0;data source="& server.mappath(db) set conn=server.createobject("ADODB.Connection") conn.open CONNSTR '------------------------------------------------------------------------------- set rs = server.CreateObject ("adodb.recordset") sql="select * from xt_tmb where tm_tm='111' order by rnd(tm_id)" rs.open sql,conn,1,1 Randomize for i = 1 to 10 ''循环次 num=Fix(Rnd*rs.recordcount) ''num便是随机产生的记录行数,用Fix(),使其不会大于总值。 rs.move num ''移到改随机行 Response.write rs("tm_id")&" " Response.write rs("tm_tm")&"<p>" ''出该条记录 rs.movefirst ''别忘了再把指针移到第一条 next rs.close set rs = nothing %>

[此贴子已经被作者于2005-5-17 10:17:15编辑过]

搜索更多相关主题的帖子: Microsoft 随机 server DKP 
2005-05-17 10:13
林小如
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-3-3
得分:0 
加上一层循环, 用数组来存储num,并用循环来检测num值不重复。 如果num值重复,则退出此循环,新产生一个num值。
2005-05-17 11:07
dkp88
Rank: 1
等 级:新手上路
帖 子:235
专家分:5
注 册:2004-10-18
得分:0 
小弟菜,请大侠写写代码呀,好吗,谢了!!!!!

学程序真有味!
2005-05-17 11:17
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
得分:0 

[QUOTE]<% db="data\DKP.mdb" CONNSTR="provider=Microsoft.jet.oledb.4.0;data source="& server.mappath(db) set conn=server.createobject("ADODB.Connection") conn.open CONNSTR '------------------------------------------------------------------------------- set rs = server.CreateObject ("adodb.recordset") sql="select * from xt_tmb where tm_tm='111' order by rnd(tm_id)" rs.open sql,conn,1,1 Randomize dim box() for i = 1 to 10 ''循环次 num=Fix(Rnd*rs.recordcount) ''num便是随机产生的记录行数,用Fix(),使其不会大于总值。 box(i)=num chongfu=false for ii=0 to i-1 if num=box(ii) then chongfu=true next

if chongfu=false then rs.move num ''移到改随机行 Response.write rs("tm_id")&" " Response.write rs("tm_tm")&"<p>" ''出该条记录 end if rs.movefirst ''别忘了再把指针移到第一条 next rs.close set rs = nothing

%>[/QUOTE] 红色部分是我加的代码,楼主试试可以吗?如果可以用回个音 我以前很少用到数组,高手看看这种逻辑可以不

[此贴子已经被作者于2005-5-17 11:25:20编辑过]

2005-05-17 11:22
dkp88
Rank: 1
等 级:新手上路
帖 子:235
专家分:5
注 册:2004-10-18
得分:0 
嗯,,,非觉感谢,你真不错,重复的记录解决,可又发现一个问题,就是我循环10次,可显录的记录每次都没有十条呀,

小弟不会用数姐,所以得请大侠帮帮忙,能不能再帮小弟解决一下,,谢了~~~~~~`

学程序真有味!
2005-05-17 11:38
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
得分:0 
<% db="data\DKP.mdb" CONNSTR="provider=Microsoft.jet.oledb.4.0;data source="& server.mappath(db) set conn=server.createobject("ADODB.Connection") conn.open CONNSTR '------------------------------------------------------------------------------- set rs = server.CreateObject ("adodb.recordset") sql="select * from xt_tmb where tm_tm='111' order by rnd(tm_id)" rs.open sql,conn,1,1 Randomize dim box() i=0 do while i<=10 num=Fix(Rnd*rs.recordcount) ''num便是随机产生的记录行数,用Fix(),使其不会大于总值。 box(i)=num chongfu=false for ii=0 to i-1 if num=box(ii) then chongfu=true next

if chongfu=false then i=i+1 rs.move num ''移到改随机行 Response.write rs("tm_id")&" " Response.write rs("tm_tm")&"<p>" ''出该条记录 end if rs.movefirst ''别忘了再把指针移到第一条 loop rs.close set rs = nothing

%>

蓝色的是我改动的部分,这次看看可以不

[此贴子已经被作者于2005-5-17 11:55:51编辑过]

2005-05-17 11:55
dkp88
Rank: 1
等 级:新手上路
帖 子:235
专家分:5
注 册:2004-10-18
得分:0 
楼上的大侠果然棒,,,谢谢你了,我的问题解决了,你在最快速度帮小弟解决了问题,如果可以的话,能否留个QQ号,小弟有时间向你请教,拜你为师!!!!!

学程序真有味!
2005-05-17 12:43
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
得分:0 
QQ就不用留了,我很少用QQ,有问题来这里问就可以了。
不光你能得到帮助,其他人看帖子也能有所收获。
我写上面的代码的时候也不敢保证正确,需要你反馈结果,大家共同进步,
何乐而不为呢
2005-05-17 12:50
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
得分:0 

天津网站建设 http://www./
2005-05-17 13:02
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 
支持!

2005-05-17 14:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-18442-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.428530 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved