本文執行個體講述了PHP轉盤抽獎介面的實現方法。分享給大家供大家參考。具體如下:
這裡的轉盤抽獎隨機返回一個轉盤角度,機率可自己定義
lottery_get.php介面檔案如下:
複製代碼 代碼如下:
<?php
/*session_start();
if(!isset($_SESSION['zaszh_user_id'])){
echo json_encode(array('status'=>'error','msg'=>'連線逾時,請重新開啟頁面。'));
exit;
}
$user_id = $_SESSION['zaszh_user_id'];*/
$user_id = 1; // 測試用
// 轉盤地區
$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元話費'),
'3' => array('min_angle'=>136,'max_angle'=>180,'prize'=>'5元話費'),
'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'=>'謝謝參與')
);
// 選定地區
$area_selected = array();
// 隨機抽取
$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元話費
case 3: $area_selected = $arr_area[2]; break;
// 5元話費
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{
// 獲獎失敗
}
}else{
// 無剩餘
}
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{
// 獲獎失敗
}
}else{
// 無剩餘
}
break;
case '10元話費':
$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元話費',unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array('status'=>'success','msg'=>'10元話費'));
}else{
// 獲獎失敗
}
}else{
// 無剩餘
}
break;
case '5元話費':
$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元話費',unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array('status'=>'success','msg'=>'5元話費'));
}else{
// 獲獎失敗
}
}else{
// 無剩餘
}
break;
default:
echo json_encode(array('status'=>'success','msg'=>'謝謝參與'));
}
}else{
// 無積分
echo json_encode(array('status'=>'error','msg'=>'您的積分不足。'));
}
$mysqli->close();
希望本文所述對大家的php程式設計有所協助。