....
$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;
}
解决方案 »
- php读取或修改配置型文件中指定关键字的值
- <a href="?action=delete&messageid=<?=$result['mid']?>">delete</a>
- 求一算法, 高手进[在线等]
- 跪求 PHP无刷新登录
- 如何实现在一个php页面上点击按钮跳转到另外一个php页面时带上文本框的内容做参数
- switch语句怪异问题~
- 象CSDN这样每天登陆送10分是怎么做的呢
- 取得页面自身文件名的常量(或变量)是什么? 在线等待~~~~
- 如何使用动态加载模式配置和安装apache?
- php与mysql应用
- 关于引用脚本,生成html代码,会在本地保存后出现两份
- $_SERVER的问题,我说为什么一直url重写失败,去不掉index.php
$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;
} 没起作用?
我是菜鸟 还在学习 请指点!
tbl_name 是表名,安实际填写
链接数据库
**/
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改为238
276改为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);
}
$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");
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);
$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;
}几率还是控制不了