$prize_arr = array(
'0' => array('id'=>1,'degree'=>1,'min'=>1,'max'=>5,'prize'=>'一等獎','v'=>1),
'1' => array('id'=>2,'degree'=>32,'min'=>7,'max'=>35,'prize'=>'不要灰心','v'=>1),
'2' => array('id'=>3,'degree'=>62,'min'=>37,'max'=>65,'prize'=>'不要灰心和祝您好運的空白','v'=>1),
'3' => array('id'=>4,'degree'=>92,'min'=>67,'max'=>95,'prize'=>'祝您好運','v'=>1),
'4' => array('id'=>5,'degree'=>122,'min'=>97,'max'=>125,'prize'=>'二等獎','v'=>89),
'5' => array('id'=>6,'degree'=>150,'min'=>127,'max'=>155,'prize'=>'再接再勵','v'=>1),
'6' => array('id'=>7,'degree'=>178,'min'=>157,'max'=>185,'prize'=>'再接再勵和運氣先藏著中間的空白','v'=>1),
'7' => array('id'=>8,'degree'=>208,'min'=>187,'max'=>215,'prize'=>'運氣先藏著','v'=>1),
'8' => array('id'=>9,'degree'=>238,'min'=>217,'max'=>245,'prize'=>'三等獎','v'=>1),
'9' => array('id'=>10,'degree'=>266,'min'=>247,'max'=>275,'prize'=>'要加油哦','v'=>1),
'10' => array('id'=>11,'degree'=>298,'min'=>277,'max'=>305,'prize'=>'要加油哦和謝謝參與間的空白','v'=>1),
'11' => array('id'=>12,'degree'=>330,'min'=>307,'max'=>335,'prize'=>'謝謝參與','v'=>1)
);
這個要怎麼從資料庫調用呢 資料庫我已經填寫完了 試了試沒調用成功 調用那些數字和文字
id xg degree min max prize chance 這是資料庫對應的名稱
回複討論(解決方案)
....$rs = mysql_query("id, xg, degree, min, max, prize, chance from tbl_name");while($r = mysql_fetch_assoc($rs)) { $prize_arr[] = $r;}
....$rs = mysql_query("id, xg, degree, min, max, prize, chance from tbl_name");while($r = mysql_fetch_assoc($rs)) { $prize_arr[] = $r;}
$prize_arr = array(
....
...
...
};
替換成
$rs = mysql_query("id, xg, degree, min, max, prize, chance from magic_config");
while($r = mysql_fetch_assoc($rs)) {
$prize_arr[] = $r;
} 沒起作用?
我是菜鳥 還在學習 請指點!
$rs = mysql_query("select id, xg, degree, min, max, prize, chance from tbl_name");
tbl_name 是表名,安實際填寫
magic_config 我已經更換啦
/**連結資料庫**/error_reporting(E_ALL & ~E_NOTICE);ob_start();session_start();require_once("config.php");header("Content-Type:text/html;charset=utf-8"); /**$prize_arr =array('error'=>'true','success'=>'false','sn'=>'null'); //這是失敗的echo json_encode($prize_arr); **/$ac=$_REQUEST['ac'];if($ac=='activityuser_sn'){$prize_arr =array('success'=>'true'); //這是提交後填寫訂單成功的echo json_encode($prize_arr);}else{$order_sn=date("Y").date("m").date("d").date("H").date("i").date("s").rand(1,99);/**我們根據抽獎圓盤上的獎項設定對應角度和中獎幾率,我們在index.php中構建一個多維陣列$prize_arr,數組$prize_arr,id用來標識不同的獎項,degree表示轉動的度數,min表示圓盤中各獎項區間對應的最小角度,max表示最大角度,如一等獎對應的最小角度:0,最大角度30,這裡我們設定max值為1、max值為29,是為了避免抽獎後指標指向兩個相鄰獎項的中線。由於圓盤中設定了多個七等獎,所以我們在數組中設定每個七等獎對應的角度範圍。prize表示獎項內容,v表示中獎幾率,我們會發現,數組中12個獎項的v的總和為100,如果v的值為1,則代表中獎幾率為1%,依此類推。在這裡我沒有用max和min的轉動範圍,直接指向的是degree度數**//**var prizeDeg = [6,36, 66, 96, 126,156, 186, 216,246, 276, 306, 336];//這是我修改後的,其實不起作用了將6改為1將36改為32將66改為62將96改為92將126改為122將156改為150將186改為178將216改為208將246改為238276改為266將306改為298將336改為330**/$rs = mysql_query("praisefeild,id,praisenumber,min,max,praisename,chance from magic_config");while($r = mysql_fetch_assoc($rs)) { $prize_arr[] = $r;}/**關於中獎機率演算法**/function getRand($proArr) { $result = ''; //機率數組的總機率精度 $proSum = array_sum($proArr); //機率數組迴圈 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; } /**函數getRand()會根據數組中設定的幾率計算出合格id,我們可以接著調用getRand()。代碼中,我們調用getRand(),獲得通過機率運算後得到的獎項,然後根據獎項中配置的角度範圍,在最小角度和最大角度間產生一個角度值,並構建數組,包含角度angle和獎項prize,最終以json格式輸出。**/foreach ($prize_arr as $key => $val) { $arr[$val['id']] = $val['v']; } $rid = getRand($arr); //根據機率擷取獎項id $res = $prize_arr[$rid-1]; //中獎項 $degree=$res['degree']; $min = $res['min']; $max = $res['max']; /**if($res['id']==7){ //七等獎 $i = mt_rand(0,5); $result['angle'] = mt_rand($min[$i],$max[$i]); }else{ $result['angle'] = mt_rand($min,$max); //隨機產生一個角度 } $result['prize'] = $res['prize']; **/if($res['id']==1){$result_arr =array('error'=>'','success'=>'true','prizetype'=>1,'sn'=>$order_sn,'msg'=>$res['prize']); //這是成功的}elseif($res['id']==2){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==3){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==4){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==5){$result_arr =array('error'=>'','success'=>'true','prizetype'=>5,'sn'=>$order_sn,'msg'=>$res['prize']); //這是成功的}elseif($res['id']==6){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==7){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==8){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==9){$result_arr =array('error'=>'','success'=>'true','prizetype'=>9,'sn'=>$order_sn,'msg'=>$res['prize']); //這是成功的}elseif($res['id']==10){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==11){$result =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}elseif($res['id']==12){$result_arr =array('error'=>'true','success'=>'false','sn'=>'null','msg'=>$res['prize']); //這是失敗的}$result_arr['angle'] = mt_rand($min,$max); //隨機產生一個角度 ,這是以前的$result_arr['angle']=$degree; //直接產生一個數組裡固定的角度echo json_encode($result_arr); }
print_r($prize_arr);
把資料庫名字改了下 都是對應的
print_r($prize_arr);
$rs = mysql_query("praisefeild,id,praisenumber,min,max,praisename,chance from magic_config");
while($r = mysql_fetch_assoc($rs)) {
print_r($prize_arr);
} 這樣嗎 還是不行
$rs = mysql_query(" select praisefeild,id,praisenumber,min,max,praisename,chance from magic_config");
$rs = mysql_query(" select praisefeild,id,praisenumber,min,max,praisename,chance from magic_config");
額
$rs = mysql_query("select praisefeild,id,praisenumber,min,max,praisename,chance from magic_config");
while($r = mysql_fetch_assoc($rs)) {
$prize_arr[] = $r;
}和
$rs = mysql_query("select praisefeild,id,praisenumber,min,max,praisename,chance from magic_config");
while($r = mysql_fetch_assoc($rs)) {
print_r($prize_arr);
}都試了試 還是不行 $rs = mysql_query("select * praisefeild,id,praisenumber,min,max,praisename,chance from magic_config"); 也不行..
//前面還有串連資料庫的代碼$rs = mysql_query("select praisefeild,id,praisenumber,min,max,praisename,chance from magic_config") or die(mysql_error());while($r = mysql_fetch_assoc($rs)) { $prize_arr[] = $r;}print_r($prize_arr);
//前面還有串連資料庫的代碼$rs = mysql_query("select praisefeild,id,praisenumber,min,max,praisename,chance from magic_config") or die(mysql_error());while($r = mysql_fetch_assoc($rs)) { $prize_arr[] = $r;}print_r($prize_arr);
$conn=@mysql_connect("localhost","root","q123456");if($conn==null)die("資料庫連接失敗");mysql_query("set names 'gb2312'");if(!mysql_select_db("zhuanpan")){die("資料庫連接失敗");}$rs = mysql_query("select praisefeild,id,praisenumber,min,max,praisename,chance from magic_config") or die(mysql_error());while($r = mysql_fetch_assoc($rs)) { $prize_arr[] = $r;}幾率還是控制不了