隨機(jī)很熟有很多這個(gè)沒(méi)什么 你可以吧每天生成的隨機(jī)序列存儲(chǔ)在數(shù)據(jù)庫(kù)不就行了,價(jià)格日期字段,判斷是不是當(dāng)天數(shù)可以使用implode()和explode(),在數(shù)組和字符串之間轉(zhuǎn)化例如$str = implode(",",$arr)把你生成的數(shù)組合并成字符串,元素之間用英文逗號(hào)隔開(kāi),存進(jìn)數(shù)據(jù)庫(kù),并生成一個(gè)時(shí)間也存進(jìn)去讀取的時(shí)候用$$arr = explode(",",$row)把讀出來(lái)的字符串拆分成數(shù)組根據(jù)時(shí)間顯示 希望可以幫到你
公司主營(yíng)業(yè)務(wù):網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出集寧免費(fèi)做網(wǎng)站回饋大家。
參考這個(gè)
$code="";
//畫(huà)布
$image=imagecreatetruecolor(80, 25);
imagefill($image, 0, 0, imagecolorallocate($image, 255, 255, 255));
for($i=0;$i4;$i++){
$rand_color=imagecolorallocate($image, rand(0,155), rand(0,155), rand(0,155));
$code_tmp=dechex(rand(1,15));
$code.=$code_tmp;
imagestring($image, rand(4,5), rand($i*20,$i*20+20-6), rand(0,13),$code_tmp , $rand_color);
//干擾線
imageline($image, rand($i*20,$i*20+20), rand(0,25), rand($i*20,$i*20+20), rand(0,25), $rand_color);
imageline($image, rand($i*20,$i*20+20), rand(0,25), rand($i*20,$i*20+20), rand(0,25), $rand_color);
}
//保存
session_start();
$_SESSION['yzm']=$code;
session_write_close();
header("content-type:image/png");
imagepng($image);
imagedestroy($image);
php提供的隨機(jī)數(shù)函數(shù)rand(),rand()函數(shù)將返回隨機(jī)整數(shù),具體使用方法如下:rand(min,max)
可選參數(shù)min和max可以使rand() 返回0到rand_max之間的偽隨機(jī)整數(shù),例如,想要5到15(包括 5 和 15)之間的隨機(jī)數(shù),用 rand(5, 15)
從你的表述,我的分析是:你的數(shù)據(jù)庫(kù)有30條左右的數(shù)據(jù)行,每次全部都查出來(lái)(需要一個(gè)二維數(shù)組,這樣便于管理),每一行數(shù)據(jù)有3個(gè)字段,你需要的結(jié)果是,當(dāng)頁(yè)面刷新的時(shí)候,每次隨即顯示7條數(shù)據(jù)。代碼如下:
?php
//?連接數(shù)據(jù)庫(kù)
$link?=?mysql_connect('主機(jī)名',?'用戶(hù)名',?'密碼');
//?SQL查詢(xún)語(yǔ)句,條件WHERE如果沒(méi)有可以不加,不需要LIMIT,全部查出來(lái)
$sql?=?"SELECT?`字段1`,?`字段2`,?`字段3`?FROM?`表名`?WHERE?`條件`;";
//?執(zhí)行SQL語(yǔ)句,獲取查詢(xún)結(jié)果集
$result?=?mysql_query($sql,?$link);
//?循環(huán)遍歷結(jié)果集?用意是為了構(gòu)建二維數(shù)組,不懂不要緊用了就明白,雙!!號(hào)是為了將while循環(huán)中表達(dá)式的值強(qiáng)制轉(zhuǎn)換成布爾值,便于判斷,可以不加,我習(xí)慣加上
while?(!!$assoc?=?mysql_fetch_assoc($result))?{//以關(guān)聯(lián)數(shù)組的方式解析結(jié)果集
$data[]?=?$assoc;?//?將解析的結(jié)果放入數(shù)組中,創(chuàng)建一個(gè)二維數(shù)組
}
//?初始化一個(gè)數(shù)組,下面要用到,是用來(lái)存放隨即7個(gè)數(shù)組的下標(biāo)的
$keys?=?array();
//?寫(xiě)一個(gè)自定義函數(shù),需要用到遞歸算法
function?get_key($keys,?$data)?{
//?這里用到了一個(gè)隨即數(shù)字函數(shù)mt_rand()而不是rand(),因?yàn)榍罢呤呛笳叩募訌?qiáng)版,個(gè)人比較喜歡前者,當(dāng)然用后者在這里也是完全可以的,根據(jù)自己的喜好來(lái)定
if?(!in_array($key?=?mt_rand(0,?count($data)?-?1),?$keys))?{
//?說(shuō)明沒(méi)有重復(fù),接收
return?$key;
}?else?{?//?說(shuō)明重復(fù)繼續(xù)遞歸
return?get_key($keys,?$data);
}?
}
//?使用for循環(huán)隨即讀取數(shù)據(jù)中的7條數(shù)據(jù),當(dāng)然用foreach也可以,根據(jù)自己的喜好來(lái)定
for?($i?=?0;?$i??7;?$i?++)?{//?這里比較復(fù)雜的就是需要7條不同的數(shù)據(jù),不能相同
//?獲取不同的7條數(shù)據(jù)的下標(biāo)
$keys[]?=?get_key($keys,?$data);
}
//?7個(gè)不同數(shù)據(jù)的下標(biāo)有了,接下來(lái)就是遍歷數(shù)據(jù)了,用foreach
foreach?($keys?as?$key)?{
echo?'字段1:'?.?$data[$key]['字段1'];
echo?'p?/';
echo?'字段2:'?.?$data[$key]['字段2'];
echo?'p?/';
echo?'字段3:'?.?$data[$key]['字段3'];
echo?'p?/';
}
//?問(wèn)題解決,這只是一種解決方案,當(dāng)然還有其他很多種,最后記得關(guān)閉數(shù)據(jù)庫(kù)和銷(xiāo)毀結(jié)果集
mysql_free_result($reuslt);?//?銷(xiāo)毀結(jié)果集
mysql_close($link)//?關(guān)閉數(shù)據(jù)庫(kù)
//?銷(xiāo)毀變量
unset($result);
unset($link);
?
希望我的方案,能夠幫你解決問(wèn)題,如果還有任何問(wèn)題或疑惑歡迎追問(wèn)~