资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php随机查询数据结构 PHP常见数据结构

php 如何实现,从数组中随机取出数据,还要保证下次不会再取到

$a

专注于为中小企业提供网站建设、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业甘南免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

=

range(1,100);

function

get_one($a){

if(count($a)=1){

$key=array_rand($a,1);

$value=$a[$key];

unset($a[$key]);

return

$value;

}else{

return

"都取光了";

}

}

//每次取值可以直接

echo

"取到的值:".get_one($a);

echo

"br还剩:".count($a);

如何在数据库中随机取出1条记录?PHP

/**

* MySQL 随机取记录

* @param $t 表

* @param $c ID列,默认为id

* @param $n 取多少个

* @param $w 条件语句

* @param $f bool 是否强制以多维数组形式返回,默认false

* @return array 取1个直接返回结果数组(除非$f为true),取1个返回多维数组,用foreach取出

*/

function rand_row($t , $c = 'id' , $n = '1', $w = '' , $f = false) {

$m=new mysqli(mysqli信息,自行查找php文档);

if (!empty($w)) {

$w = ' AND '.$w;

}

$sql = "SELECT * FROM `{$t}` WHERE {$c} = (SELECT floor(RAND() * (SELECT MAX({$c}) FROM `{$t}`))) {$w} ORDER BY {$c} LIMIT {$n};";

$xq  = $m-query($sql);

$r   = array();

while ($x = $m-fetch_array($xq)) {

$r[] = $x;

}

if ($f == false  count($r) == 1) {

return $r[0];

} else {

return $r;

}

}

请问php+mysql中如何从数据表student中随机抽取若干条(例如是五条数据)数据?

直接用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会有缺失所以有的方法不适用!就不一一列举了!

请问各位老师PHP怎么写随机查询MYSQL

思路给你提供一下

先查询出 所有的未标记的id

然后随机出几个id

然后查询这几个id对应的信息。

这个可以兼顾一下效率问题吧


当前题目:php随机查询数据结构 PHP常见数据结构
标题网址:http://cdkjz.cn/article/doogigc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220