手机游戏
经典单机
角色扮演
休闲益智
动作冒险
射击枪战
赛车竞速
模拟经营
解密闯关
策略战争
手机软件
时尚购物
体育运动
资讯阅读
教育学习
摄影摄像
生活服务
效率办公
聊天社交
其它软件
新闻资讯
游戏攻略
软件教程
游戏问答
软件技术
叨叨念念
网站技术
技术问答
软件教程
资源资料
原创作品
代码学习
网页设计
网络技术
合集
合集
游戏合集
软件合集
资讯合集
视频合集
首页 > 代码学习 > 代码学习

PHP随机显示mysql数据库中的数据

作者:星知苑 时间:2010-10-12 08:19:35

随机显示MySQL数据库表中的数据,其实并不难,方法也多种多样。

最简单的方法是rand()随机取。例如:要从tablename表中随机提取5条记录,大家一般的写法就是

 

SELECT * FROM table ORDER BY RAND() LIMIT 5

 

 

尽量少使用ORDER BY RAND(),使用其他方法替换。因为ORDER BY rand()会将数据从磁盘中读取,进行排序,会消耗大量的IO和CPU,可以在程序中获取一个rand值,然后通过在从数据库中获取对应的值。[break]

我就对ORDER BY RAND()做过一个测试,本地环境php5.3,apache2.2,mysql5.0。实验数据库量1000,1万,以及10万条数据。php执行ORDER BY RAND()并显示,1000条执行时间大概20ms内,1万条大约60ms,10万条大约120ms。

 

 

另一种方法:

查询数据库,检索出id字段,放入数组,然后用数组的随机函数将数组元素打乱,然后根据要随机显示的数量从数组中抽出一定数量的数据,然后根据数组元素中的id查询数据库。
程序如下:
<?php 
$array=array(); 
$query=”SELECT id from table LIMIT 0,200”; //table为表名 取其中200条记录
$result=mysql_query($query); 
$num_rows=mysql_num_rows($result); //返回查询到的记录条数 
while($row=mysql_fetch_array($result)) 
{ 
$array[]=$row['id']; //将字段内容读到数组中 
} 
$rand_keys=array_rand($array,$num_rows); //将数组随机打乱 
for ($i=0;$i<20;$i++) //这行设置从数组中取出几个元素,这里是取20个 
{ 
$id=$array[$rand_keys[$i]]; //取数组中的第i个元素 
$query=”select * from table where id=’$id’”;//查询数据库 
$result=mysql_query($query); 
$num=mysql_fetch_assoc($result); 
…… 
} 
//省略的内容为你自己的查询数据库的程序了。 
?>

良心推荐

购物实惠的软件有哪些?
  • 小黑鱼下载app官方
  • 洋码头app下载安装
  • 多点app下载最新版本
  • 美图美妆下载安装免费
  • yohobuy有货app下载
  • 寺库奢侈品app下载
随着社会的不断的进步传统的买东西,都是可以直接在手机上进行购买非常的方便生活,不仅有吃的有喝的还有各种不同种类的生活用品,家电用品等等,本站分享一些比较多人使用的,在上面买东西是非常的实惠价格很便宜还是可以给你保证正品的购物软件推荐。

相关资讯