PHP轉盤抽獎接口實例_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP中實現獲取IP和地理位置類分享
      這篇文章主要介紹了PHP中實現獲取IP和地理位置類分享,本文地理定位使用的是SINA的通用接口,需要的朋友可以參考下 發現之前有一個腳本沒有寫完,簡單擴充了一下。 獲取IP使用的是經典的邏輯,地理定位使用的是SINA的通用接口。 使用方法詳見源碼: 代碼如下: ?php /* *

       這篇文章主要介紹了PHP轉盤抽獎接口的實現方法,實例分析了隨機抽獎接口的實現原理與對應數據庫操作的技巧,需要的朋友可以參考下

         

      本文實例講述了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,' '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程序設計有所幫助。

      分享:PHP實現獲取FLV文件的時間
      這篇文章主要介紹了PHP實現獲取FLV文件的時間,本文直接給出實現代碼和使用方法,需要的朋友可以參考下 PHP如何獲取FLV文件時間呢,答案是fopen文件后查看FLV文件是HEX數據,并轉換為number。 代碼如下: ?php functionBigEndian2Int($byte_word,$signed=false) { $int_valu

      來源:模板無憂//所屬分類:PHP教程/更新時間:2015-02-11
      相關PHP教程