?php?
目前成都創新互聯已為近千家的企業提供了網站建設、域名、虛擬空間、網站托管運營、企業網站設計、臥龍網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
session_start();
$id_lucky?=?$_POST['id_lucky'];
$customer?=?$_POST['customer'];
$prize?=?$_POST['prize'];
$hide?=?$_POST['hidden'];
//var_dump($_SESSION);
if($hide==$_SESSION['conn'])//你這里判斷的session是什么時候存入session的
{
$sql=mysql_query("insert?into?"._DB_PREFIX_."luckdraw?(customer,prize)?values?('$customer','$prize')");
//你這里沒有判斷?你應該在這里判斷一下mysql_query是否執行成功?執行sql成功?是提交成功?否則是失敗?建議你使用var_dump($sql)打印$sql看看$sql是什么數據類型
if($sql){
echo?"親,提交成功了哦";
}else{
echo?'失敗';
}
??
}else
{
echo?"scriptreturn?false;/script";????
}
session_destroy();
無論是Web應用,還是WAP或者移動應用,隨機數都有其用武之地。在最近接觸的幾個小項目中,我也經常需要和隨機數或者隨機數組打交道,所以,對于PHP如何產生不重復隨機數常用的幾種方法小結一下(ps:方法1、4、5是我常用的,其余來自網絡整理)
方法一:
復制代碼
代碼如下:
?php
$numbers
=
range
(1,50);
//shuffle
將數組順序隨即打亂
shuffle
($numbers);
//array_slice
取該數組中的某一段
$num=6;
$result
=
array_slice($numbers,0,$num);
print_r($result);
?
方法二:
復制代碼
代碼如下:
?php
$numbers
=
range
(1,20);
//播下隨機數發生器種子,可有可無,測試后對結果沒有影響
srand
((float)microtime()*1000000);
shuffle
($numbers);
//跳過list第一個值(保存的是索引)
while
(list(,
$number)
=
each
($numbers))
{
echo
"$number
";
}
?
方法三:
復制代碼
代碼如下:
?php
function
NoRand($begin=0,$end=20,$limit=5){
$rand_array=range($begin,$end);
shuffle($rand_array);//調用現成的數組隨機排列函數
return
array_slice($rand_array,0,$limit);//截取前$limit個
}
print_r(NoRand());
?
上述可以在1-20間隨機產生5個不重復的值
方法四:
復制代碼
代碼如下:
?php
$tmp=array();
while(count($tmp)5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?
方法五:
復制代碼
代碼如下:
?php
$tmp
=
range(1,30);
print_r(array_rand($tmp,10));
?
這個可能是比叫簡單的了(ps:如果在range中指定了步長,就必須注意array_rand的第二個參數是否超出$tmp的長度)。
PHP提供非常豐富的數組函數,產生隨機數大多可以從數組這個角度出發,若你還有方法提供,歡迎給出,文章將持續更新。
// 1、首先定義一個空的目標數組
$arr = [];
// 2、開始for循環
for ($i = 0; $i 1000; ) {
****// 3、獲取0~3000之間的隨機數
****$r = rand(0, 3000);
****// 4、判斷該隨機數是否存在目標數組中
****if (!in_array($r, $arr)) {
********// 5、如果不存在,則將該隨機數添加到目標數組中
********$arr[] = $r;
********// 6、最關鍵的一步:只有向目標數組添加新值的時候才改變$i的值
********$i ++;
****}
****continue;
}
// 7、最后打印出目標數組,也可使用print_r函數
var_dump($arr);
die;
總結:該題的難點在于在什么時候再改變計數器變量$i的值,只有數組元素新增的時候才能改變$i,使其加1,當然for循環體也可反向寫,也可采用別的循環結構,留給你自己發揮^^。
希望能幫助到你,望采納,謝謝~
你好,這是我解決你這個問題的思路,希望能幫到你:比如你是根據a字段設置唯一,在每次插入之前就使用下一條需要插入的值去數據表里面查詢,如果查詢到了就跳出當前循環,下次循環繼續(continue),希望能幫到你!
數據庫中設置為不可重復
while循環
生成隨機號和密碼部分應該不用講了 你應該有自己的規則
然后往數據庫中插入
插入的時候try一下 如果沒成功繼續向下執行
如果執行成功了則計數加1
當計數等于N的時候跳出循環
你可以這樣,你有一張ip_code表格,你加一個字段為state,你每次取的時候把state標為1,而沒取得為0,那么每次拿都是去拿為0的。
文章題目:php插入不重復的數據,php隨機數不重復
網站URL:http://www.yijiale78.com/article26/dsgoojg.html
成都網站建設公司_創新互聯,為您提供靜態網站、外貿建站、品牌網站設計、商城網站、全網營銷推廣、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯