有十条记录。随机显示三条记录。并且不能重复?

sjcn 2005-07-03 07:51:56
rt
...全文
220 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
JohnsonHome 2005-07-06
  • 打赏
  • 举报
回复
看MSDN RND函数
wzhiyuan 2005-07-05
  • 打赏
  • 举报
回复
赞成用sql 语句。
zy51 2005-07-05
  • 打赏
  • 举报
回复
是否可以考虑把记录存放到数组.然后生成3个随机数 从数组中提出来.
AppleBBS 2005-07-05
  • 打赏
  • 举报
回复
随机提取10条记录的例子:
SQL Server:Select Top 10 * From 表 Order By NewID()

Access:Select Top 10 * From 表 Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select Top 10 * From 表 Order BY Rnd(Len(UserName))

MySql:Select * From 表 Order By Rand() Limit 10
AppleBBS 2005-07-05
  • 打赏
  • 举报
回复
Select * From Table Order By NewID()
  • 打赏
  • 举报
回复
可以直接用sql实现
游陆 2005-07-05
  • 打赏
  • 举报
回复
用asp也可以实现!
<%
set rs =server.CreateObject("adodb..recordset")
rs.open"select top 10 * from mem ",nn,1,1
if not rs.eof then
Randomize
m=10
n=1
R = Int(Rnd() * M - N + 1) + N
Q = Int(Rnd() * M - N + 1) + N
if r=q then Q = Int(Rnd() * M - N + 1) + N
P = Int(Rnd() * M - N + 1) + N
if r=p then p = Int(Rnd() * M - N + 1) + N
if q=p then p = Int(Rnd() * M - N + 1) + N
response.Write(rs(r).rs("id")&"<br>"&rs(q).rs("id")&"<br>"&rs(p).rs("id"))
end if
%>
JK_10000 2005-07-05
  • 打赏
  • 举报
回复
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JK:支持民族工业,尽量少买X货</title>
</head>

<body>
<pre>
洗牌算法:
部分代码来自:
http://community.csdn.net/Expert/topic/3858/3858964.xml?temp=.5909693
fason的回贴。

</pre>

<script language="JavaScript">
<!--

function getRandomArray(m,n) //得到m张牌里的n张牌 (m>=n>0)
{
if(n==null || n==m )
return getRandomPlayCard(m);
var array1=new Array(m);
for(var i=0;i<m;i++)
array1[i]=i;
var m2=m-0.00001;
for(var i=0;i<n;i++)
{
var rnd=Math.floor(Math.random()*m2);
var swap=array1[i];array1[i]=array1[rnd];array1[rnd]=swap;
}
return(array1.slice(0,n));
}


function getRandomPlayCard(m) //洗牌
{
var array1=new Array(m);
for(var i=0;i<m;i++){
var rnd=Math.floor(Math.random()*(i+0.99999))
array1[i]=array1[rnd];
array1[rnd]=i;
}
return array1;
}


document.write(getRandomPlayCard(100)+"<br><br>"+getRandomArray(100,5));

-->
</script>

</body>
</html>
cxz7531 2005-07-04
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<TITLE> disable link </TITLE>
</HEAD>

<BODY onload="f();">
<SCRIPT LANGUAGE="JavaScript">
function f(){
var a=new Array(0,1,2,3,4,5,6,7,8,9);
var ret=new Array(0);
for(var i=0;i<3;i++){
var n=Math.floor(Math.random()*a.length);
ret[ret.length]=a[n];
a.splice(n,1);
}
alert(ret);
alert(a);
}
</SCRIPT>
</BODY>
</HTML>
pyusksk503 2005-07-03
  • 打赏
  • 举报
回复
不用JS也可以.
你可以用VB中的Rnd()函数
Rnd()是产生一个介于0~1之间的随机数,要产生一个介于N-M之间的随机数用下面的公式:
Randomize
R = Int(Rnd() * M - N + 1) + N
这样,你可以一下子产生三个随机数:
Q = Int(Rnd() * M - N + 1) + N
P = Int(Rnd() * M - N + 1) + N
这时,你再用一个循环:
i=0
j=0
dim a[2]
a[0]=R
a[1]=Q
a[2]=P
for i=0 to 2
do while rs.eof//十条记录的记录集遍历
if a[i]=j then
response.write rs(0)//也可以把它一个个输出到表格当中去.随你自己怎么办.
break
End if
rs.movenext
j++
loop
next
这样的话就可以随机输出不一样的三个记录,你试一下看看行不行?


sjcn 2005-07-03
  • 打赏
  • 举报
回复
用JS实现。那位高手能帮助我一下。谢谢

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧