十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
$limitNum=rand(20,30);
专注于为中小企业提供成都网站建设、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业三门峡免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
这个样就可以随机20到30之间的数了
查询时候 limit $limitNum即可
直接使用while循环来处理,循环使用随机函数mt_rand,将随机数存入一个数组中,作为判断数据是否重复的依据(in_array);使用glob函数来判断new目录下的文章篇数,作为生成随机数的最大值;整体代码如下:
执行后的效果:
代码操作:
?php
//获取文件夹下html的数量
$max_num = glob("xxx/new/*.html");
$num = 0;
$rand_num = [];
$result_arr = [];
while($num 100){
$tample_num = mt_rand(1,$max_num);
if(!in_array($tample_num,$rand_num)){
$rand_num[] = $tample_num;
$result_arr[] = "".$tample_num.".html";
$num++;
}
}
foreach($result_arr as $v){
echo $v."hr/";
}
echo "数组的大小". count($result_arr);
不用从页面取id
去掉foreach
$sql="select * from phome_ecms_wma order by rand() limit 30"
就行了
你这不是只查询了一条,而是你只输出了一条罢了
$sql="select * from product ORDER BY rand() LIMIT 4 ";
$mysql=mysql_query($sql);
while($row=mysql_fetch_assoc($mysql)){
//循环输出记录
print_r($row);
}
当然,如果你的记录不足4条,也没法显示出来
直接用select * from student order by rand() limit 5不是一个很好的习惯,这个要考虑到数据库的大小问题,比如,数据量为10W以上,这样查询的效率是非常低的,资源也消耗挺多!你可以考虑在php与mysql结合来实现,比如:先用mysql 的count()计算出student的总条数$sum_num,赋值到php中的变量中,后在php中更具这个总条数进行生成随机数(这里涉及到你的5条数据是否为连续的5条随机数,还是打乱的随机五条),这里如果生成连续的数据就只需要生成一个小于$sum_num-5的随机数就可以了!根据这个随机数进行limit取出5条就可以;如果这里需要生成打乱的随机数,就需要生成5个不相同的并且小于$sum_num随机数,最后根据这些随机数在数据库中查询,第一种情况用到limit 随机数,5;;第二种情况用到in(随机数1,随机数2,随机数3,随机数4,随机数5);在数据量大的情况下,这样的效率和资源消耗的情况下都要比select * from student order by rand() limit 5好得多,当然如果数据量不多的话就用这个也可以!只是给你普及个知识!祝你学习愉快!(这里暂且认为你会用php生成随机数并且这里的php生成的随机数必须为大于0的整型哦,不会的话可以先百度、google,最后可以继续给我留言)!
这里因为你的id会有缺失所以有的方法不适用!就不一一列举了!