你可以直接在sql 里寫隨機(jī) select name from users where state='1' and weiname!='' and imageurl!='' and sex!='' order by rand() limit...
成都創(chuàng)新互聯(lián)主營五華網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,五華h5小程序設(shè)計(jì)搭建,五華網(wǎng)站營銷推廣歡迎五華等地區(qū)企業(yè)咨詢
range();創(chuàng)建一個(gè)包含指定范圍的元素的數(shù)組
array_rand();從數(shù)組中隨機(jī)取值
implode()數(shù)組轉(zhuǎn)換成字符串
rand()生成隨機(jī)數(shù)
看不懂你說的,0.0;上面那幾個(gè)函數(shù)應(yīng)該夠你用了
count的時(shí)候可以加條件,如果加條件效率低,可以考慮隨機(jī)取一次是否有記錄,沒有就循環(huán)繼續(xù)隨機(jī),當(dāng)然這樣效率比沒有軟刪除要低不少
你這不是只查詢了一條,而是你只輸出了一條罷了
$sql="select?*?from?product?ORDER?BY?rand()?LIMIT?4?";
$mysql=mysql_query($sql);
while($row=mysql_fetch_assoc($mysql)){
//循環(huán)輸出記錄
print_r($row);
}
當(dāng)然,如果你的記錄不足4條,也沒法顯示出來
/**
* MySQL 隨機(jī)取記錄
*
* @param $t 表
* @param $c ID列,默認(rèn)為id
* @param $n 取多少個(gè)
* @param $w 條件語句
* @param $f bool 是否強(qiáng)制以多維數(shù)組形式返回,默認(rèn)false
* @return array 取1個(gè)直接返回結(jié)果數(shù)組(除非$f為true),取1個(gè)返回多維數(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;
}
//隨機(jī)個(gè)數(shù),默認(rèn)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個(gè)隨機(jī)字段
mysql_close($con);
//純手寫的,不明白可以問我,記得給分