php随机一条数据库 php随机一言

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

/**

我们提供的服务有:成都网站设计、网站制作、微信公众号开发、网站优化、网站认证、东平ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的东平网站制作公司

* 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随机生成数据库中不存在、不重复数字

说下思路:

1. 将生成的数字保存到mysql数据库,然后每次生成的号码不能与数据库的数字重复,请问怎么弄?

先读取数据库已存在的数字,将结果以数组格式,与rand(1,1000)的数组相比较计算差集,去除这部分数字(array_diff),再shuffle,得到新的随机数。

我觉得,你完全可以建立一个序号表,比如,1-1000,每次用时先用随机函数取(1-数据记录数)个数值,再用这个数值取得相应的记录,当取出之后,删除这个记录,这样保证记录总数一直会减少且数字也不会重复。

2. 有没有什么办法生成的时候先生成一位数的,一位数生成满了以后再生出两位数的,两位数满了然后再三位数的,以此类推?

先获取一位数的记录,再从中随机抽取一个,如果数据库中没有找到一位数的,就递增一位数,直到找到为止。

3. 代码的执行效率希望能越高越好!

如果想要代码执行效率,最好尽量减少与数据库的交互。

php随机输出记录集中的一条记录

如果要在这前10条里面随机显示一条,可以存到数组里面,然后随机输出,例如:

$rows=array();

while($row=mysql_fetch_array($res)){

$rows[]=$row;

}

$n=rand(0,9);

echo "a href='bbpress/topic.php?id={$rows[$n][topic_id]}'".$rows[$n][topic_title]."/br"."/a";

如果希望直接在数据库里面随机提取一条记录,那么方法是修改SQL:

select * from ... order by rand() limit 1

php,选择“数据库表里”符合某个条件的多个数据,然后怎么再随机选取一个?

$mysql_server_name="localhost"; //数据库服务器名称

$mysql_username="root"; // 连接数据库用户名

$mysql_password="??????"; // 连接数据库密码

$mysql_database="??????"; // 数据库的名字

// 连接到数据库

$conn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password);                   

// 从表中提取信息的sql语句

$strsql="SELECT * FROM 表名 WHERE type='交友'";

// 执行sql查询

$result=mysql_db_query($mysql_database, $strsql, $conn);

// 获取查询结果

var_dump(array_rand($result));


网页名称:php随机一条数据库 php随机一言
网站地址:http://scjbc.cn/article/doegsoi.html

其他资讯