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

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破解版
  • 腾讯动漫下载破解版
  • 快看漫画下载免费阅读
  • 小鸡漫画最新版本下载
很多喜欢看漫画的朋友,在手机上看漫画软件是非常的多,让你眼花缭乱现在小编给你整理的很多的目前个人是觉得比较好用,又是免费的让你可以直接在手机上高清的看漫画,沉浸在二次元世界遨游的,而且内容是很完整的,资源也是相当的多还可以让你缓存下载看。

相关资讯