重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
$sql="select * from ".$BIAOTOU."slides where hide=0 order by RAND() limit 0,4";
創新互聯建站主營襄垣網站建設的網絡公司,主營網站建設方案,App定制開發,襄垣h5微信小程序開發搭建,襄垣網站營銷推廣歡迎襄垣等地區企業咨詢
這樣就行,不過如果做著玩的站無所謂,如果商業應用的話,用php隨機好點。mysql 函數盡量少用
每次隨機取出一個數之后,應該刪除這個數,才可以保證下次不取到它。例如你的100個數,第一次隨機取一個,然后刪除它,下次再剩余的99里面隨機取一個,這樣就不會重復了。
寫代碼沒難度了吧,你寫寫看,如果希望我繼續回答,建議你粘貼一下你寫的內容,不完整或者錯誤沒關系,至少你去思考了的,而且我看了代碼知道你錯在哪里,才可以針對性的講解。
沒空等你寫代碼了,我把我的貼出來,今天晚上要熬夜加班,沒空回來看帖子了,不好意思,希望你認真學習。
?php
$arr=array();
for ($i=1;$i=100;$i++) array_push($arr,$i);
print_r($arr);
for ($i=1;$i=100;$i++){
$n=rand(0,count($arr)-1);//產生隨機數,最小值是0,最大值是數組剩余元素可數-1
echo $arr[$n]," ";//顯示取的隨機數
array_slice($arr,$n,1);//刪除剛才取到的數
}
?
用array_rand()函數就可以實現。
array_rand():從數組中隨機選出一個或多個元素,并返回。
語法:array_rand(array,number)
array:必需。規定輸入的數組參數。
number:可選。默認是 1。規定返回多少個隨機的元素。
例子:$a = ['a','b','c'];//定義一個二維數組
$b = $array_rand($a,1);//從數組a里隨機選取一個元素賦值給變量b。
用array_rand()函數吧,它可以從一個數組中隨機取一個或者多個下標出來,有了下標,就可以從原數組拿到對應的元素了。它的用法也很簡單:array_rand($arr[,
$num])$arr
==
用來取元素的數組$num
==
隨機取下標的個數其中第二個參數
$num
是可選的,默認為1
。注意:它的返回值在第二個參數大于
1
的時候是一個數組;當第二個參數不設或者傳值
1
的時候是一個下標。簡單的示例代碼如下:1、第二個參數不傳值的情況;$arr
=
Array('a',
'b');$rndKey
=
array_rand($arr);echo
$arr[$rndKey];//輸出
a
或者
b2、第二個參數傳值大于
1
的情況;$arr
=
Array('a',
'b',
'c',
'd');$rndKey
=
array_rand($arr,
2);print_r($rndKey]);//輸出一個隨機key的數組
php里面有array_rand函數,你要是一道題一道題的讀出來,或許也可以嘗試一下。但是要是一下子都讀出來,即便這個函數效率可以的話,隨機取出id數組,查詢 “where id in 數組” 就不如直接在數據庫里隨機抽取記錄。\x0d\x0a如何從數據表里隨機抽取記錄呢,想想辦法還是有一些,就是不知道效率如何。有的是說用max_id*rand(),那一條一條抽取還是可以的。怎么批量隨機抽取呢,可以試著排序,然后選取前500題,排序可以想辦法用一些函數(選取一些執行效率高的),如何md5,sha1,這種。如果為了使結果更具有隨機性,可以把字段值再與一個隨機數運算一下。僅供參考。\x0d\x0a========================\x0d\x0a我想你還是用array_rand隨機抽500個id存到數組,然后遍歷數組吧。這樣也避免了題目重復。在數據庫里如果一次一條記錄隨機抽取,要考慮碰巧重復的問題。批量選取你就按上面我說的試試。
array_rand()
在你想從數組中取出一個或多個隨機的單元時相當有用。它接受
input
作為輸入數組和一個可選的參數
num_req,指明了你想取出多少個單元
-
如果沒有指定,默認為
1。
如果你只取出一個,array_rand()
返回一個隨機單元的鍵名,否則就返回一個包含隨機鍵名的數組。這樣你就可以隨機從數組中取出鍵名和值。
主要是用array_rand()方法