echo "方法一:";
echo "br\n";
$str = "李一,李二,李三,李四,王一,王二,王三,王四,张一,张二,张三,张四"; //某id下的名字字段的全部文字内容,设为变量$str
$temp = explode(",", $str); //以逗号拆分字符串$str,变成数组$temp
$result = array(); //最终数组,先初始化下
$key = rand(0, count($temp)-1);//获取随机数
$result[] = $temp[$key];//通过随机数找到$temp数组中的值,即随机的名字,赋值给$result数组
unset($temp[$key]); //把刚才取出的名字从$temp数组中删除
sort($temp); //从新排列下$temp数组的顺序,使其键值还是从0开始,为下次循环做准备
}
echo "结果为:";
print_r($result);
echo implode(",", $result);
echo "方法二:";
$result[] = $temp[$val]; //通过键值从temp数组找到对应的内容,即随机的名字,赋值给$result数组
直接用sql随机查询 获取数据 就可以了 SELECT * FROM tablename ORDER BY RAND() LIMIT 10
如果要在这前10条里面随机显示一条,可以存到数组里面,然后随机输出,例如:
$rows=array();
while($row=mysql_fetch_array($res)){
$rows[]=$row;
echo "a href='bbpress/topic.php?id={$rows[$n][topic_id]}'".$rows[$n][topic_title]."/br"."/a";
echo "a href='bbpress/topic.php?id={$rows[$n][topic_id]}'".$rows[$n][topic_title]."/br"."/a";
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 随机函数
$num = select count(*) from bbs;
$id= mt_rand(1,$num);
然后执行 SQL select user,bbs from +bbs+ where id = .$id;
为提高效率 最好别用 mysql的 rand()函数
从数据库读出来的原始数据是资源.还不是数组.
$result = mysql_Query("select * from tb_admin where parid=1")
while($list = mysql_fetch_array($result)){
print_r($list);//这里输出的数组是将原数组拆开来输出.
原始的数据结构应是:
array(
[0]=array(
[id]=01
[classname]=我是
[url]=baidu.com
)
[1]=array(
//这里同上,不两累赘
$map?=?array('id'=?array('exp','?=?(SELECT?FLOOR(?MAX(id)?*?RAND())?FROM?+'.C('DB_PREFIX').'custom_reply_news+?)'));
$dd?=?M("custom_reply_news")-where($map)-order('id')-find();
dump($dd);?
//?第二种查询时间只有0.01秒
$map?=?array('id'=?array('exp','?=?(SELECT?floor(RAND()?*?(SELECT?MAX(id)?FROM?+'.C('DB_PREFIX').'custom_reply_news+)))'));
//?第三种加上了MIN(id)的判断.我在最开始测试的时候,就是因为没有加上MIN(id)的判断,结果有一半的时间总是查询到表中的前面几行.
$map?=?array('id'=?array('exp','?=?(SELECT?floor(?RAND()?*?((SELECT?MAX(id)?FROM?+'.C('DB_PREFIX').'custom_reply_news+)-(SELECT?MIN(id)?FROM?+'.C('DB_PREFIX').'custom_reply_news+))?+?(SELECT?MIN(id)?FROM?+'.C('DB_PREFIX').'custom_reply_news+)))'));
//?第四种采用JOIN的语法比直接在WHERE中使用函数效率还要高很多
dump($dd);
以上就是土嘎嘎小编为大家整理的php随机查询数据结构相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!