/**
創(chuàng)新互聯(lián)建站企業(yè)建站,十多年網(wǎng)站建設經(jīng)驗,專注于網(wǎng)站建設技術(shù),精于網(wǎng)頁設計,有多年建站和網(wǎng)站代運營經(jīng)驗,設計師為客戶打造網(wǎng)絡企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務。對于網(wǎng)站設計制作、網(wǎng)站建設中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調(diào)研,為客戶提供的解決方案。
* MySQL 隨機取記錄
*
* @param $t 表
* @param $c ID列,默認為id
* @param $n 取多少個
* @param $w 條件語句
* @param $f bool 是否強制以多維數(shù)組形式返回,默認false
* @return array 取1個直接返回結(jié)果數(shù)組(除非$f為true),取1個返回多維數(shù)組,用foreach取出
*/
function rand_row($t , $c = 'id' , $n = '1', $w = '' , $f = false) {
$m=new mysqli(mysqli信息,自行查找php文檔);
if (!empty($w)) {
$w = ' AND '.$w;
}
$sql = "SELECT * FROM `{$t}` WHERE {$c} = (SELECT floor(RAND() * (SELECT MAX({$c}) FROM `{$t}`))) {$w} ORDER BY {$c} LIMIT {$n};";
$xq = $m-query($sql);
$r = array();
while ($x = $m-fetch_array($xq)) {
$r[] = $x;
}
if ($f == false count($r) == 1) {
return $r[0];
} else {
return $r;
}
}
//連接數(shù)據(jù)庫
if(!$con = mysql_connect("localhost","root","root")){die(mysql_error());}
mysql_select_db("ali_xt");
mysql_query('set names utf8');
//找出ali_admin表的字段
$res = mysql_query('show columns from ali_admin');
//將數(shù)據(jù)給弄出來
$data = array();
while ($row = mysql_fetch_assoc($res, MYSQL_NUM)) {
$data[] = $row;
}
//隨機個數(shù),默認5
$rand_times = 5;
$rand_times = count($data)$rand_times?count($data):$rand_times;
$result = array();
for( $i=0;$i$rand_times;$i++ ){
$result[] = $data[rand(0,count($data)-1)][0];
}
echo "pre";
print_r($result); //輸出5個隨機字段
mysql_close($con);
//純手寫的,不明白可以問我,記得給分
range();創(chuàng)建一個包含指定范圍的元素的數(shù)組
array_rand();從數(shù)組中隨機取值
implode()數(shù)組轉(zhuǎn)換成字符串
rand()生成隨機數(shù)
看不懂你說的,0.0;上面那幾個函數(shù)應該夠你用了
需要準備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php,并定義一個數(shù)組。
2、在index.php中,輸入代碼:echo $a[mt_rand(0, count($a) - 1)];。
3、瀏覽器運行index.php頁面,此時隨機打印出了數(shù)組中的值。
4、瀏覽器按F5刷新,發(fā)現(xiàn)確實是隨機的。
php里面有array_rand函數(shù),你要是一道題一道題的讀出來,或許也可以嘗試一下。但是要是一下子都讀出來,即便這個函數(shù)效率可以的話,隨機取出id數(shù)組,查詢 “where id in 數(shù)組” 就不如直接在數(shù)據(jù)庫里隨機抽取記錄。\x0d\x0a如何從數(shù)據(jù)表里隨機抽取記錄呢,想想辦法還是有一些,就是不知道效率如何。有的是說用max_id*rand(),那一條一條抽取還是可以的。怎么批量隨機抽取呢,可以試著排序,然后選取前500題,排序可以想辦法用一些函數(shù)(選取一些執(zhí)行效率高的),如何md5,sha1,這種。如果為了使結(jié)果更具有隨機性,可以把字段值再與一個隨機數(shù)運算一下。僅供參考。\x0d\x0a========================\x0d\x0a我想你還是用array_rand隨機抽500個id存到數(shù)組,然后遍歷數(shù)組吧。這樣也避免了題目重復。在數(shù)據(jù)庫里如果一次一條記錄隨機抽取,要考慮碰巧重復的問題。批量選取你就按上面我說的試試。