PHP轉(zhuǎn)盤抽獎(jiǎng)接口實(shí)例
本文實(shí)例講述了PHP轉(zhuǎn)盤抽獎(jiǎng)接口的實(shí)現(xiàn)方法。分享給大家供大家參考。具體如下:
這里的轉(zhuǎn)盤抽獎(jiǎng)隨機(jī)返回一個(gè)轉(zhuǎn)盤角度,概率可自己定義
lottery_get.php接口文件如下:
/*session_start();
if(!isset($_SESSION['zaszh_user_id'])){
echo json_encode(array('status'=>'error','msg'=>'連接超時(shí),請(qǐng)重新打開頁(yè)面。'));
exit;
}
$user_id = $_SESSION['zaszh_user_id'];*/
$user_id = 1; // 測(cè)試用
// 轉(zhuǎn)盤區(qū)域
$arr_area = array(
'0' => array('min_angle'=>1,'max_angle'=>45,'prize'=>'小米'),
'1' => array('min_angle'=>46,'max_angle'=>90,'prize'=>'拍立得'),
'2' => array('min_angle'=>91,'max_angle'=>135,'prize'=>'10元話費(fèi)'),
'3' => array('min_angle'=>136,'max_angle'=>180,'prize'=>'5元話費(fèi)'),
'4' => array('min_angle'=>181,'max_angle'=>225,'prize'=>'謝謝參與'),
'5' => array('min_angle'=>226,'max_angle'=>270,'prize'=>'謝謝參與'),
'6' => array('min_angle'=>271,'max_angle'=>315,'prize'=>'謝謝參與'),
'7' => array('min_angle'=>316,'max_angle'=>360,'prize'=>'謝謝參與')
);
// 選定區(qū)域
$area_selected = array();
// 隨機(jī)抽取
$num_rand = mt_rand(1,10);
switch($num_rand){
// 小米
case 1: $area_selected = $arr_area[0]; break;
// 拍立得
case 2: $area_selected = $arr_area[1]; break;
// 10元話費(fèi)
case 3: $area_selected = $arr_area[2]; break;
// 5元話費(fèi)
case 4: $area_selected = $arr_area[3]; break;
// 謝謝參與
default:
switch(mt_rand(1,4)){
case 1: $area_selected = $arr_area[4]; break;
case 2: $area_selected = $arr_area[5]; break;
case 3: $area_selected = $arr_area[6]; break;
case 4: $area_selected = $arr_area[7]; break;
}
break;
}
echo $area_selected['prize'];
require('connect_database.php');
// 扣除答題積分
$mysqli->query("update zaszh_user set answer_points=answer_points-5 where id='{$user_id}' and answer_points>=5");
if($mysqli->affected_rows){
// 有積分
// 記錄積分消耗
$mysqli->query("insert into zaszh_answer_points_consume(user_id,points_consume,consume_for,create_date) values('{$user_id}',5,'lottery',unix_timestamp(now()))");
switch($area_selected['prize']){
case '小米':
$mysqli->query("update zaszh_prize_surplus set surplus=surplus-1 where prize='小米' and surplus>0");
if($mysqli->affected_rows){
// 有剩余
$mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','小米',unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array('status'=>'success','msg'=>'小米'));
}else{
// 獲獎(jiǎng)失敗
}
}else{
// 無(wú)剩余
}
break;
case '拍立得':
$mysqli->query("update zaszh_prize_surplus set surplus=surplus-1 where prize='拍立得' and surplus>0");
if($mysqli->affected_rows){
// 有剩余
$mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','拍立得',unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array('status'=>'success','msg'=>'拍立得'));
}else{
// 獲獎(jiǎng)失敗
}
}else{
// 無(wú)剩余
}
break;
case '10元話費(fèi)':
$mysqli->query("update zaszh_telephone_charge_surplus set charge_surplus=charge_surplus-10 where date=substring(now(),1,10) and charge_surplus>=10");
if($mysqli->affected_rows){
// 有剩余
$mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','10元話費(fèi)',unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array('status'=>'success','msg'=>'10元話費(fèi)'));
}else{
// 獲獎(jiǎng)失敗
}
}else{
// 無(wú)剩余
}
break;
case '5元話費(fèi)':
$mysqli->query("update zaszh_telephone_charge_surplus set charge_surplus=charge_surplus-5 where date=substring(now(),1,10) and charge_surplus>=5");
if($mysqli->affected_rows){
// 有剩余
$mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','5元話費(fèi)',unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array('status'=>'success','msg'=>'5元話費(fèi)'));
}else{
// 獲獎(jiǎng)失敗
}
}else{
// 無(wú)剩余
}
break;
default:
echo json_encode(array('status'=>'success','msg'=>'謝謝參與'));
}
}else{
// 無(wú)積分
echo json_encode(array('status'=>'error','msg'=>'您的積分不足。'));
}
$mysqli->close();
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
- php編寫的抽獎(jiǎng)程序中獎(jiǎng)概率算法
- php解決搶購(gòu)秒殺抽獎(jiǎng)等大流量并發(fā)入庫(kù)導(dǎo)致的庫(kù)存負(fù)數(shù)的問(wèn)題
- php實(shí)現(xiàn)可以設(shè)置中獎(jiǎng)概率的抽獎(jiǎng)程序代碼分享
- 適用于抽獎(jiǎng)程序、隨機(jī)廣告的PHP概率算法實(shí)例
- php抽獎(jiǎng)小程序的實(shí)現(xiàn)代碼
- php抽獎(jiǎng)概率算法(刮刮卡,大轉(zhuǎn)盤)
- php實(shí)現(xiàn)概率性隨機(jī)抽獎(jiǎng)代碼
- 基于PHP實(shí)現(xiàn)簡(jiǎn)單的隨機(jī)抽獎(jiǎng)小程序
- jQuery+PHP實(shí)現(xiàn)的擲色子抽獎(jiǎng)游戲?qū)嵗?/a>
- PHP實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)算法分享
相關(guān)文章
PHPWind與Discuz截取字符函數(shù)substrs與cutstr性能比較
PHP性能優(yōu)化系列第四期實(shí)戰(zhàn)篇,如何使用PEAR Benchmark類工具獲取函數(shù)執(zhí)行性能,這里以PHPWind與Discuz!兩個(gè)社區(qū)論壇的截取字符函數(shù)substrs與cutstr為例,分析兩個(gè)函數(shù)的執(zhí)行性能情況2011-12-12PHP容易被忽略而出錯(cuò)陷阱 數(shù)字與字符串比較
數(shù)字與字符串比較時(shí), 先嘗試將字符串轉(zhuǎn)換為數(shù)字, 再比較, 一個(gè)不能轉(zhuǎn)換為數(shù)字的字符串, 轉(zhuǎn)換結(jié)果為0, 故, 與0比較總返回 true2011-11-11關(guān)于PHP5和PHP7中數(shù)組實(shí)現(xiàn)方式的比較總結(jié)
PHP7比PHP5性能提升了兩倍,全面一致的64位支持,以前的許多致命錯(cuò)誤,現(xiàn)在改成拋出異常,下面這篇文章主要給大家介紹了關(guān)于PHP5和PHP7中數(shù)組實(shí)現(xiàn)方式比較的相關(guān)資料,需要的朋友可以參考下2021-09-09php中文字母數(shù)字驗(yàn)證碼實(shí)現(xiàn)代碼
php下實(shí)現(xiàn)多種方式的驗(yàn)證碼實(shí)現(xiàn)效果代碼2008-04-04Laravel中l(wèi)og無(wú)法寫入問(wèn)題的解決
這篇文章主要介紹了Laravel中l(wèi)og無(wú)法寫入問(wèn)題的解決,文中給出了詳細(xì)解決方法供大家參考學(xué)習(xí),對(duì)大家具有一定的參考借鑒價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06