大转盘,设定了华为手机必须是9001的时候才可以抽出,总抽奖次数10000名

// 大转盘

class Dazhuanpan

{

private $prize_arr; //奖品信息

private $proArr; //数量数组

private $user_num; //参与人总和

function __construct()

{

$con = mysqli_connect('localhost','root','root','ceshi'); //链接数据

// 查询参与用户数

$user_num_sqlu = "SELECT COUNT(id) FROM dazhuanpan_user";

$user_re = mysqli_query($con,$user_num_sqlu);

$user_num = mysqli_fetch_row($user_re)[0];

$this->user_num = $user_num;

// 查询奖品信息

$sql = "SELECT * FROM dazhuanpan_jiangpin";

$result = mysqli_query($con,$sql);

$data = mysqli_fetch_all($result,MYSQLI_ASSOC);

mysqli_free_result($result);

$this->prize_arr = $data;

mysqli_close($con);

$proArr = '';

// 遍历出数量数组

foreach ($data as $k=>$v)

{

// 查询奖品信息 如果大于9001的时候 加入第二名奖项;

if($k == 1)

{

if($user_num > 9001)

{

$proArr[] = $v['shuliang'];

}else{

$proArr[]=0;

}

}else{

$proArr[] = $v['shuliang'];

}

}

$this->proArr = $proArr;

}

/**

* 大转盘计算

* @return [type] [description]

*/

private function dzsuanfa()

{

$data = '';

$proSum = array_sum($this->proArr); //概率数组的总概率精度

foreach ($this->proArr as $k => $v) { //概率数组循环

$randNum = mt_rand(1, $proSum);

if ($randNum <= $v) {

$data = $id_jiangpin = $k; //中奖对应的ID

break;

} else {

$proSum -= $v;

}

}

unset($proArr);

// 数量减一

$this->prize_arr[$data]['shuliang']--;

$shuliang = $this->prize_arr[$data]['shuliang'];

// 修改库存

$con = mysqli_connect('localhost','root','root','ceshi'); //链接数据

$id_jiangpin++;

$sql = "UPDATE dazhuanpan_jiangpin SET shuliang = '$shuliang' WHERE id = '$id_jiangpin';";

// 添加中奖用户信息 (这里应该查询是否已经中奖中奖不给)

$sql .= "INSERT INTO dazhuanpan_user (phone,jiangpin_id) VALUE ('".$_GET["phone"]."','".$data."')";

$result = mysqli_multi_query($con,$sql);

if ($result)

{

// mysqli_free_result($result);

mysqli_close($con);

}else{

$data = 'false';

}

return $data;

}

/**

* 查询用户

* @return [type] [description]

*/

private function user()

{

$con = mysqli_connect('localhost','root','root','ceshi'); //链接数据

$sql = "SELECT * FROM dazhuanpan_user";

$result = mysqli_query($con,$sql);

$data = mysqli_fetch_all($result,MYSQLI_ASSOC);

mysqli_free_result($result);

// mysqli_close($con);

return $data;

}

/**

* 公共接口

* @return [type] [description]

*/

public function api()

{

// 次数达到10000 活动终止

if ($this->user_num == 10000)

{

echo '活动总次数到了!';die;

}elseif(array_sum($this->proArr) <= 0)

{

echo '奖品已经发放完毕!';die;

}

$dzsuanfa = $this->dzsuanfa();

if($dzsuanfa == false)

{

echo '错误';die;

}

// 奖品ID

// $jiang_id = $this->dzsuanfa();

// echo $jiang_id;die;

// 奖品信息

var_dump($this->prize_arr[$dzsuanfa]);

echo '
';

echo '恭喜获得'.$this->prize_arr[$dzsuanfa]['jiangpin'];

// 用户信息

echo "

";

var_dump($this->user());

}

}

$dz_class = new Dazhuanpan();

$dz_class->api();

mysql

CREATE TABLE `dazhuanpan_jiangpin` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`jiangpin` varchar(255) NOT NULL,

`min` int(11) NOT NULL,

`max` int(11) NOT NULL,

`shuliang` int(11) unsigned zerofill NOT NULL,

`zhuangtai` int(11) NOT NULL DEFAULT '1',

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

CREATE TABLE `dazhuanpan_user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`phone` varchar(255) NOT NULL,

`jiangpin_id` varchar(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8;DELIMITER //

CREATE PROCEDURE text2()

BEGIN

declare p decimal (10) default 0 ;

dd:loop

INSERT INTO dazhuanpan_user(id,phone,jiangpin_id)VALUE

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5'),

('','18710733333','5');

set p = p+10;

if p = 10000 then leave dd;

END if;

END loop dd;

END

//

php大转盘,php大转盘相关推荐

  1. linux系统 大分区,linux大硬盘怎么分区

    随着硬盘的增大,linux系统对大硬盘,大分区的支持也有了相应的设置.很多刚刚学习的小白还是不太懂硬盘的挂载.为此学习啦小编为大家整理推荐了相关的知识,希望大家喜欢. linux大硬盘分区的详细方法 ...

  2. 程序员必知8大排序3大查找(三)

    前两篇 <程序员必知8大排序3大查找(一)> <程序员必知8大排序3大查找(二)> 三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表(以后谈) 一.顺序查找的基 ...

  3. 拿transformer做E2E全景分割,这个通用框架霸榜挑战赛,南大、港大联合提出

    视学算法报道 机器之心编辑部 本文中,来自南大.港大.英伟达等机构的研究者提出了一个使用 transformer 进行端到端全景分割的通用框架,不仅为语义分割与实例分割提供了统一的 mask 预测工作 ...

  4. 国内高校简称撞车史:南大、西大、东大都在争,唯独北大没人抢

    ‍ 文章 | 募格学术 高校因简称经常发生争议,今天小编就来盘点一下.高校简称背后的"爱恨情仇",都可以拍一出大型连续剧了. 你知道你们学校的简称是啥嘛? 用官方措辞解释,高校简称 ...

  5. Transformer霸榜全景分割任务,南大、港大提出一种通用框架!

    来源:机器之心 本文中,来自南大.港大.英伟达等机构的研究者提出了一个使用 transformer 进行端到端全景分割的通用框架,不仅为语义分割与实例分割提供了统一的 mask 预测工作流程,而且使得 ...

  6. 2019年上半年收集到的人工智能大神与大咖观点文章

    2019年上半年收集到的人工智能大神与大咖观点文章 Hinton等人新研究:如何更好地测量神经网络表示相似性 520,看看AI大牛吴恩达和姚期智如何撩妹 AI教父杰弗里辛顿:AI反学习可能揭开人类梦境 ...

  7. 【大数据】大数据思维的十大核心原理

    感谢博主,转自:https://blog.csdn.net/supermapsupport/article/details/78741774 一.数据核心原理 从"流程"核心转变为 ...

  8. MySQL-性能优化_大表和大事务的常用处理方案

    文章目录 生猛干货 官方文档 影响MySQL性能的几大因素 大表带来的风险 大表的定义 大表带来的风险 如何应对大表? 大事务带来的风险 基本特性:ACID SQL标准中的4个隔离级别 Read Co ...

  9. 《深入理解大数据:大数据处理与编程实践》一一3.3 HDFS文件存储组织与读写...

    本节书摘来自华章计算机<深入理解大数据:大数据处理与编程实践>一书中的第3章,第3.3节,作者 主 编:黄宜华(南京大学)副主编:苗凯翔(英特尔公司),更多章节内容可以访问云栖社区&quo ...

  10. 大数据职业理解_到底什么是大数据,大数据职业的具体工作内容是什么?

    综合网络解释加上自己的理解给出了大数据的定义. 大数据就是数据规模达到海量级.极快的速度流转.数据类型和来源多种多样.价值密度低而且能够反映事物真实性的数据就是大数据. 大数据的工作内容包括以下几个方 ...

最新文章

  1. 【摄像头】宽动态范围
  2. OpenCV4.4 CUDA编译与加速全解析
  3. Oracle 分析及动态采样
  4. (部分伪)面向对象视频笔记
  5. Java并发教程–原子性和竞争条件
  6. linux webshell 页面管理,instantbox:30s内快速搭建可通过webshell管理的Linux系统
  7. 基于Echarts+HTML5可视化数据大屏展示—大数据管理平台中心
  8. uni 修改数据页面不重新渲染
  9. oracle 性能诊断工具,oracle性能诊断工具
  10. 微信小程序想通过场景化缩短路径
  11. 深信服虚拟桌面部署及性能优化关键点配置(图文顺序全解)
  12. mysql基础01 创建表 修改表
  13. 使用layui中的laypage遇到的各种问题总结
  14. 【微服务架构】让我们谈谈“拥有”他们的数据的微服务
  15. C语言中runtime错误,runtime error错误解决方案 打开软件出现runtime error
  16. 迷宫问题(OJ平台)附代码解释
  17. CodeForces 1144D -Equalize Them All
  18. linux TC命令使用总结
  19. Matplotlib 多个子图使用一个图例
  20. Microsoft Completes Acquisition of Collaboration Software Provider Groove Networks

热门文章

  1. mui PopPicker面板关闭后的回调函数
  2. 第3章:Hadoop分布式文件系统(1)
  3. Linu的sftp环境搭建
  4. 我要学ASP.NET MVC 3.0(十三): MVC 3.0 防止跨站点请求伪造 (CSRF) 攻击
  5. 金融科技火热无比时,支付场景下的风控可以怎么做?(下)
  6. Ubuntu redmine 安装
  7. enum类型的标签内容根据语言的取法
  8. 弥补Web开发缺陷实战 HTML5 中存储API
  9. python 中间件
  10. Facebook研究院院长:AI不会取代人类