直接用select * from student order by rand() limit 5不是一個很好的習慣,這個要考慮到數(shù)據(jù)庫的大小問題,比如,數(shù)據(jù)量為10W以上,這樣查詢的效率是非常低的,資源也消耗挺多!你可以考慮在php與mysql結(jié)合來實現(xiàn),比如:先用mysql 的count()計算出student的總條數(shù)$sum_num,賦值到php中的變量中,后在php中更具這個總條數(shù)進行生成隨機數(shù)(這里涉及到你的5條數(shù)據(jù)是否為連續(xù)的5條隨機數(shù),還是打亂的隨機五條),這里如果生成連續(xù)的數(shù)據(jù)就只需要生成一個小于$sum_num-5的隨機數(shù)就可以了!根據(jù)這個隨機數(shù)進行l(wèi)imit取出5條就可以;如果這里需要生成打亂的隨機數(shù),就需要生成5個不相同的并且小于$sum_num隨機數(shù),最后根據(jù)這些隨機數(shù)在數(shù)據(jù)庫中查詢,第一種情況用到limit 隨機數(shù),5;;第二種情況用到in(隨機數(shù)1,隨機數(shù)2,隨機數(shù)3,隨機數(shù)4,隨機數(shù)5);在數(shù)據(jù)量大的情況下,這樣的效率和資源消耗的情況下都要比select * from student order by rand() limit 5好得多,當然如果數(shù)據(jù)量不多的話就用這個也可以!只是給你普及個知識!祝你學習愉快!(這里暫且認為你會用php生成隨機數(shù)并且這里的php生成的隨機數(shù)必須為大于0的整型哦,不會的話可以先百度、google,最后可以繼續(xù)給我留言)!
創(chuàng)新互聯(lián)是一家專業(yè)提供蘇家屯企業(yè)網(wǎng)站建設,專注與成都做網(wǎng)站、成都網(wǎng)站設計、成都外貿(mào)網(wǎng)站建設、H5頁面制作、小程序制作等業(yè)務。10年已為蘇家屯眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
這里因為你的id會有缺失所以有的方法不適用!就不一一列舉了!
給你寫個函數(shù):
function?haha($arr){
$keys=array_rand($arr,5);
$re=array();
foreach($keys?as?$v){
$re[$v]=$arr[$v];
}
return?$re;???
}
如果文件不是太大的話,可以這樣寫:
?php
$arr=file('a.txt'); //文本文件,請修改合適的名字和位置
$n=count($arr);
for ($i=0;$i5;$i++) echo $arr[rand(0,$n)]."br';
?
你可以先這樣嘛,每次產(chǎn)生隨機數(shù)的時候,將這些隨機數(shù)依次加到一個數(shù)組當中去,下標以0-39這40個數(shù)字,然后每次你取數(shù)據(jù)的時候從0-39隨機產(chǎn)生一個數(shù)字,然后再通過這個數(shù)字做為下標再去取對應下標的值就可以啦~~~
本文標題:php隨機獲取5條數(shù)據(jù) php隨機選擇
當前地址:http://jinyejixie.com/article34/dosgcpe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站制作、品牌網(wǎng)站設計、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)