欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十六)

 更新時(shí)間:2014年06月30日 11:15:37   作者:鐵船長  
這篇文章主要介紹了PHP網(wǎng)頁游戲Xnova(ogame)源碼解讀的攻擊任務(wù)頁面的代碼流程,需要的朋友可以參考下

十九、攻擊任務(wù)(MissionCaseAttack.php)

按照艦隊(duì)任務(wù)的編號(hào),排在第一個(gè)的就是攻擊任務(wù)。這個(gè)代碼很長,看的時(shí)候要有耐心。
好在引用的內(nèi)容并不是很多,并且給出了詳細(xì)的注釋,讀者不會(huì)暈頭轉(zhuǎn)向。

function MissionCaseAttack ($FleetRow)
{
  global $user, $phpEx, $xnova_root_path, $pricelist, $lang, $resource, $CombatCaps;
   // 在艦隊(duì)的記錄中,fleet_start_time代表的不是出發(fā)時(shí)間,而是到達(dá)目的地時(shí)間
   // 代表出發(fā)時(shí)間的是start_time
   // 此外還有fleet_end_time 這個(gè)是回到家的時(shí)間
    // fleet_end_stay 這個(gè)是結(jié)束逗留的時(shí)間(聯(lián)合防御和遠(yuǎn)征任務(wù)會(huì)用到)
    // 所以下面這個(gè)判斷的意思是“艦隊(duì)到達(dá)了目的地”,而不是“艦隊(duì)起飛了”
    if ($FleetRow['fleet_start_time'] <= time()) {
    // fleet_mess是用來記錄艦隊(duì)的狀態(tài)的,基本可以理解為是在前進(jìn)途中還是返航途中
    // 但感覺利用得并不好,如果只有兩個(gè)狀態(tài),可以用true 和 false來記錄
    // 所以我把它設(shè)為了0,1,2三個(gè)狀態(tài),對(duì)于需要停留的任務(wù),停留時(shí)就處于第三個(gè)狀態(tài)
    if ($FleetRow['fleet_mess'] == 0) {
      // ↓↓ 這個(gè)判斷是試探存放戰(zhàn)斗數(shù)據(jù)的文件是否存在
       // 如果文件不存在,就中斷操作,提示聯(lián)系管理員
       if (!isset($CombatCaps[202]['sd'])) {
        message("<span style="FONT-FAMILY: ">" . $lang['sys_no_vars'] . "</span>", $lang['sys_error'], "fleet." . $phpEx, 2);
      }
      // ↓↓ 開始是一系列的數(shù)據(jù)庫查詢,取得攻防雙方的艦隊(duì)數(shù)量和科技等級(jí)
      // 根據(jù)艦隊(duì)信息取得防守方星球數(shù)據(jù)
      $QryTargetPlanet = "SELECT * FROM {{table}} ";
      $QryTargetPlanet .= "WHERE ";
      $QryTargetPlanet .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
      $QryTargetPlanet .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
      $QryTargetPlanet .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' AND ";
      $QryTargetPlanet .= "`planet_type` = '" . $FleetRow['fleet_end_type'] . "';";
      $TargetPlanet = doquery($QryTargetPlanet, 'planets', true);
      $TargetUserID = $TargetPlanet['id_owner'];
      // 根據(jù)艦隊(duì)信息取得攻擊方信息
      $QryCurrentUser = "SELECT * FROM {{table}} ";
      $QryCurrentUser .= "WHERE ";
      $QryCurrentUser .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
      $CurrentUser = doquery($QryCurrentUser , 'users', true);
      $CurrentUserID = $CurrentUser['id'];
      // 由星球數(shù)據(jù)取得目標(biāo)星球的所有者的信息
       $QryTargetUser = "SELECT * FROM {{table}} ";
      $QryTargetUser .= "WHERE ";
      $QryTargetUser .= "`id` = '" . $TargetUserID . "';";
      $TargetUser = doquery($QryTargetUser, 'users', true);
      // 然后取得雙方的科技信息
       // 其實(shí)下面這兩個(gè)完全可以與上面兩個(gè)查詢整到一起
      $QryTargetTech = "SELECT ";
      $QryTargetTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
      $QryTargetTech .= "FROM {{table}} ";
      $QryTargetTech .= "WHERE ";
      $QryTargetTech .= "`id` = '" . $TargetUserID . "';";
      $TargetTechno = doquery($QryTargetTech, 'users', true);
      $QryCurrentTech = "SELECT ";
      $QryCurrentTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
      $QryCurrentTech .= "FROM {{table}} ";
      $QryCurrentTech .= "WHERE ";
      $QryCurrentTech .= "`id` = '" . $CurrentUserID . "';";
      $CurrentTechno = doquery($QryCurrentTech, 'users', true);
      // ↑↑ 如果有其他的能影響艦隊(duì)三圍的項(xiàng)目(比如指揮官等),也應(yīng)該在這里一并取出來
      // 生成防守方的艦隊(duì)(防御)
       // 如果考慮聯(lián)合防御,在上面還應(yīng)該把這個(gè)星球上聯(lián)合防御的艦隊(duì)提取出來
       // 然后一起計(jì)算數(shù)量和科技水平
       for ($SetItem = 200; $SetItem 0) {
          $TargetSet[$SetItem]['count'] = $TargetPlanet[$resource[$SetItem]];
        }
      }
      // 生成攻擊方的艦隊(duì),也是用數(shù)組存放。'fleet_array'是不能直接拿來用的
       // 這個(gè)字段的結(jié)構(gòu)是  編號(hào),數(shù)量;編號(hào),數(shù)量; ……
       // 所以使用時(shí)需要用兩次explode把它打散然后存進(jìn)數(shù)組
       $TheFleet = explode(";", $FleetRow['fleet_array']);
      foreach($TheFleet as $a =&gt; $b) {
        if ($b != '') {
          $a = explode(",", $b);
          $CurrentSet[$a[0]]['count'] = $a[1];
        }
      }
      // 包含進(jìn)戰(zhàn)斗引擎,ready to fight
      include_once($xnova_root_path . 'includes/ataki.' . $phpEx);
      // 在輸入信息之前采集時(shí)間
       $mtime = microtime();
      $mtime = explode(" ", $mtime);
      $mtime = $mtime[1] + $mtime[0];
      $starttime = $mtime;
      // 將雙方艦隊(duì)和科技輸入戰(zhàn)斗引擎,并用$walka來記錄輸出結(jié)果
       $walka = walka($CurrentSet, $TargetSet, $CurrentTechno, $TargetTechno);
      // 再采集時(shí)間,得到戰(zhàn)斗過程所用的時(shí)間
       // 也就是“戰(zhàn)斗報(bào)告產(chǎn)生于 x.xxxxxxxxxx 秒”的由來
      $mtime = microtime();
      $mtime = explode(" ", $mtime);
      $mtime = $mtime[1] + $mtime[0];
      $endtime = $mtime;
      $totaltime = ($endtime - $starttime);
      // 分別用一個(gè)單獨(dú)的數(shù)組來記錄攻擊方的剩余艦隊(duì)信息、
       $CurrentSet = $walka["atakujacy"];
      // ……防守方的艦隊(duì)信息、
       $TargetSet = $walka["wrog"];
      // ……戰(zhàn)斗的勝負(fù)結(jié)果、
       $FleetResult = $walka["wygrana"];
      // ……每一輪的詳細(xì)情況、
       $dane_do_rw = $walka["dane_do_rw"];
      // 以及雙方的損失和廢墟情況
       $zlom = $walka["zlom"];
      // 計(jì)算攻擊方剩下的單位,順便把裝載量也一并計(jì)算進(jìn)去了
      $FleetArray = "";
      $FleetAmount = 0;
      $FleetStorage = 0;
      foreach ($CurrentSet as $Ship =&gt; $Count) {
        $FleetStorage += $pricelist[$Ship]["capacity"] * $Count['count'];
        // 用$FleetArray記載艦隊(duì)情況,轉(zhuǎn)換成數(shù)據(jù)庫里字段的格式,準(zhǔn)備“入庫”
          $FleetArray .= $Ship . "," . $Count['count'] . ";";
        $FleetAmount += $Count['count'];
      }
      $FleetStorage -= $FleetRow["fleet_resource_metal"];
      $FleetStorage -= $FleetRow["fleet_resource_crystal"];
      $FleetStorage -= $FleetRow["fleet_resource_deuterium"];
      // 計(jì)算防守星球戰(zhàn)后的情況
       $TargetPlanetUpd = "";
  if (!is_null($TargetSet)) {
        foreach($TargetSet as $Ship =&gt; $Count) {
          $TargetPlanetUpd .= "`" . $resource[$Ship] . "` = '" . $Count['count'] . "', ";
        }
  }
      // 如果戰(zhàn)斗結(jié)果為攻擊方獲勝,則開始計(jì)算掠奪資源的情況 ↓↓
      // 這里可以include進(jìn)PlanetResourceUpdate.php,在掠奪之前先更新目標(biāo)星球的資源
       $Mining['metal'] = 0;
      $Mining['crystal'] = 0;
      $Mining['deuter'] = 0;
      if ($FleetResult == "a") {
        if ($FleetStorage &gt; 0) {
          $metal = $TargetPlanet['metal'] / 2;
          $crystal = $TargetPlanet['crystal'] / 2;
          $deuter = $TargetPlanet["deuterium"] / 2;
          if (($metal) &gt; $FleetStorage / 3) {
            $Mining['metal'] = $FleetStorage / 3;
            $FleetStorage = $FleetStorage - $Mining['metal'];
          } else {
            $Mining['metal'] = $metal;
            $FleetStorage = $FleetStorage - $Mining['metal'];
          }
          if (($crystal) &gt; $FleetStorage / 2) {
            $Mining['crystal'] = $FleetStorage / 2;
            $FleetStorage = $FleetStorage - $Mining['crystal'];
          } else {
            $Mining['crystal'] = $crystal;
            $FleetStorage = $FleetStorage - $Mining['crystal'];
          }
          if (($deuter) &gt; $FleetStorage) {
            $Mining['deuter'] = $FleetStorage;
            $FleetStorage = $FleetStorage - $Mining['deuter'];
          } else {
            $Mining['deuter'] = $deuter;
            $FleetStorage = $FleetStorage - $Mining['deuter'];
          }
        }
      }
      // ↑↑ 到這里為止就計(jì)算結(jié)束了,但如果星球上金屬巨多,但晶體和重氫幾乎沒有
       // 那就會(huì)出現(xiàn)裝了1/3倉的金屬,剩下2/3倉全都空著
       // 所以可以考慮自己把掠奪方法完善一下,也不是很難
      $Mining['metal'] = round($Mining['metal']);
      $Mining['crystal'] = round($Mining['crystal']);
      $Mining['deuter'] = round($Mining['deuter']);
      // ↓↓ 更新數(shù)據(jù)庫
       $QryUpdateTarget = "UPDATE {{table}} SET ";
      $QryUpdateTarget .= $TargetPlanetUpd;
      $QryUpdateTarget .= "`metal` = `metal` - '" . $Mining['metal'] . "', ";
      $QryUpdateTarget .= "`crystal` = `crystal` - '" . $Mining['crystal'] . "', ";
      $QryUpdateTarget .= "`deuterium` = `deuterium` - '" . $Mining['deuter'] . "' ";
      $QryUpdateTarget .= "WHERE ";
      $QryUpdateTarget .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
      $QryUpdateTarget .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
      $QryUpdateTarget .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' AND ";
      $QryUpdateTarget .= "`planet_type` = '" . $FleetRow['fleet_end_type'] . "' ";
      $QryUpdateTarget .= "LIMIT 1;";
      doquery($QryUpdateTarget , 'planets');
      $QryUpdateGalaxy = "UPDATE {{table}} SET ";
      $QryUpdateGalaxy .= "`metal` = `metal` + '" . $zlom['metal'] . "', ";
      $QryUpdateGalaxy .= "`crystal` = `crystal` + '" . $zlom['crystal'] . "' ";
      $QryUpdateGalaxy .= "WHERE ";
      $QryUpdateGalaxy .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
      $QryUpdateGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
      $QryUpdateGalaxy .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
      $QryUpdateGalaxy .= "LIMIT 1;";
      doquery($QryUpdateGalaxy , 'galaxy');
      // ↓↓ 計(jì)算廢墟和損失的情況
       $FleetDebris = $zlom['metal'] + $zlom['crystal'];
      $StrAttackerUnits = sprintf ($lang['sys_attacker_lostunits'], pretty_number ($zlom["atakujacy"]));
      $StrDefenderUnits = sprintf ($lang['sys_defender_lostunits'], pretty_number ($zlom["wrog"]));
      $StrRuins = sprintf ($lang['sys_gcdrunits'], pretty_number ($zlom["metal"]), $lang['Metal'], pretty_number ($zlom['crystal']), $lang['Crystal']);
      $DebrisField = $StrAttackerUnits . "" . $StrDefenderUnits . "" . $StrRuins;
      // ↓↓ 計(jì)算產(chǎn)月概率
       $MoonChance = $FleetDebris / 100000;
      if ($FleetDebris &gt; 2000000) {
        $MoonChance = 20;
      }
      if ($FleetDebris = 100000) {
        $UserChance = mt_rand(1, 100);
        $ChanceMoon = sprintf ($lang['sys_moonproba'], $MoonChance);
      }
      // 如果RP夠好,就能產(chǎn)生月亮了。當(dāng)然前提是這個(gè)坐標(biāo)上沒有月亮
       if (($UserChance &gt; 0) and ($UserChance $MoonChance) {
        ……
       }
      // ↓↓ 從這里開始生成戰(zhàn)斗報(bào)告,很長,但并不復(fù)雜
       $AttackDate = date("r", $FleetRow["fleet_start_time"]);
      $title = sprintf ($lang['sys_attack_title'], $AttackDate);
      $raport = "" . $title . "";
      $zniszczony = false;
      $a_zestrzelona = 0;
      // ↓↓ 雙方攻防信息。如果有其他能影響艦隊(duì)三圍的,也要在這里加進(jìn)去
       // 當(dāng)然這里的數(shù)據(jù)只是顯示在戰(zhàn)報(bào)中而已,是不會(huì)影響島實(shí)際戰(zhàn)斗的
       $AttackTechon['A'] = $CurrentTechno["military_tech"] * 10;
      $AttackTechon['B'] = $CurrentTechno["defence_tech"] * 10;
      $AttackTechon['C'] = $CurrentTechno["shield_tech"] * 10;
      $AttackerData = sprintf ($lang['sys_attack_attacker_pos'], $CurrentUser["username"],$FleetRow['fleet_start_galaxy'], $FleetRow['fleet_start_system'], $FleetRow['fleet_start_planet']);
      $AttackerTech = sprintf ($lang['sys_attack_techologies'], $AttackTechon['A'],$AttackTechon['B'], $AttackTechon['C']);
      $DefendTechon['A'] = $TargetTechno["military_tech"] * 10;
      $DefendTechon['B'] = $TargetTechno["defence_tech"] * 10;
      $DefendTechon['C'] = $TargetTechno["shield_tech"] * 10;
      $DefenderData = sprintf ($lang['sys_attack_defender_pos'], $TargetUser["username"], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
      $DefenderTech = sprintf ($lang['sys_attack_techologies'], $DefendTechon['A'], $DefendTechon['B'], $DefendTechon['C']);
      // 根據(jù)戰(zhàn)斗中每一輪的詳細(xì)情況生成交火的細(xì)節(jié),包括每一輪的數(shù)量,攻防值,造成和吸收了多少傷害等
       // 有一些鍵值可能需要看了戰(zhàn)斗引擎才會(huì)明白它代表的什么,所以看不懂也沒關(guān)系 ↓↓
      foreach ($dane_do_rw as $a =&gt; $b) {
       ……
       }
      // ↓↓ 根據(jù)勝負(fù)結(jié)果顯示相應(yīng)的結(jié)尾
       switch ($FleetResult) {
       ……
       } 
      // 戰(zhàn)斗報(bào)告生成于 x.xxxxxxxxxxxx 秒
       $SimMessage = sprintf ($lang['sys_rapport_build_time'], $totaltime);
      $raport .= $SimMessage . "";
      // ↓↓ 將戰(zhàn)斗報(bào)告編碼,存入數(shù)據(jù)庫
       $dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];
      $rid = md5($raport);
      $QryInsertRapport = "INSERT INTO {{table}} SET ";
      $QryInsertRapport .= "`time` = UNIX_TIMESTAMP(), ";
      $QryInsertRapport .= "`id_owner1` = '" . $FleetRow['fleet_owner'] . "', ";
      $QryInsertRapport .= "`id_owner2` = '" . $TargetUserID . "', ";
      $QryInsertRapport .= "`rid` = '" . $rid . "', ";
      $QryInsertRapport .= "`a_zestrzelona` = '" . $a_zestrzelona . "', ";
      $QryInsertRapport .= "`raport` = '" . addslashes ($raport) . "';";
      doquery($QryInsertRapport , 'rw');
      // ↓↓ 這里才是發(fā)給玩家的消息,其中有一個(gè)onclick的鏈接到上面的戰(zhàn)報(bào)
       // 下面這個(gè)是發(fā)給攻擊方的,根據(jù)戰(zhàn)斗結(jié)果不同,標(biāo)題也有不同的顏色
       $raport = "";
      $raport .= "";
      if ($FleetResult == "a") {
        $raport .= "";
      } elseif ($FleetResult == "r") {
        $raport .= "";
      } elseif ($FleetResult == "w") {
        $raport .= "";
      }
      $raport .= ……
       // ↓ 這里突然回到計(jì)算攻擊艦隊(duì)的資源裝載量,其實(shí)完全可以挪到上面去
       $Mining['metal'] = $Mining['metal'] + $FleetRow["fleet_resource_metal"];
      $Mining['crystal'] = $Mining['crystal'] + $FleetRow["fleet_resource_crystal"];
      $Mining['deuter'] = $Mining['deuter'] + $FleetRow["fleet_resource_deuterium"];
      // 更新艦隊(duì)信息
       $QryUpdateFleet = "UPDATE {{table}} SET ";
      $QryUpdateFleet .= "`fleet_amount` = '" . $FleetAmount . "', ";
      $QryUpdateFleet .= "`fleet_array` = '" . $FleetArray . "', ";
      $QryUpdateFleet .= "`fleet_mess` = '1', ";
      $QryUpdateFleet .= "`fleet_resource_metal` = '" . $Mining['metal'] . "', ";
      $QryUpdateFleet .= "`fleet_resource_crystal` = '" . $Mining['crystal'] . "', ";
      $QryUpdateFleet .= "`fleet_resource_deuterium` = '" . $Mining['deuter'] . "' ";
      $QryUpdateFleet .= "WHERE fleet_id = '" . $FleetRow['fleet_id'] . "' ";
      $QryUpdateFleet .= "LIMIT 1 ;";
      doquery($QryUpdateFleet , 'fleets');
      // 發(fā)送戰(zhàn)斗消息給攻擊方
       SendSimpleMessage ($CurrentUserID, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
      // ↓ 又突然插進(jìn)來開始計(jì)算戰(zhàn)斗經(jīng)驗(yàn)和戰(zhàn)斗次數(shù)
       // 嚴(yán)重懷疑coder寫這個(gè)文件時(shí)是不是喝高了
       $AddPoint = $CurrentUser['xpraid'] + 1;
      $QryUpdateOfficier = "UPDATE {{table}} SET ";
      $QryUpdateOfficier .= "`xpraid` = '" . $AddPoint . "' ";
      $QryUpdateOfficier .= "WHERE id = '" . $CurrentUserID . "' ";
      $QryUpdateOfficier .= "LIMIT 1 ;";
      doquery($QryUpdateOfficier, 'users');
      $RaidsTotal = $CurrentUser['raids'] + 1;
      if ($FleetResult == "a") {
        $RaidsWin = $CurrentUser['raidswin'] + 1;
        $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
        $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
        $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
        $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
        $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
        doquery($QryUpdateRaidsCompteur, 'users');
      } elseif ($FleetResult == "r" || $FleetResult == "w") {
        $RaidsLoose = $CurrentUser['raidsloose'] + 1;
        $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
        $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsLoose . "', ";
        $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
        $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
        $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
        doquery($QryUpdateRaidsCompteur, 'users');
      }
      // ↓↓ 終于又回來了,開始寫發(fā)給防御方的消息
       $raport2 = "";
      $raport2 .= "";
      if ($FleetResult == "a") {
        $raport2 .= "";
      } elseif ($FleetResult == "r") {
        $raport2 .= "";
      } elseif ($FleetResult == "w") {
        $raport2 .= "";
      }
      $raport2 .= $lang['sys_mess_attack_report'] . " [" . $FleetRow['fleet_end_galaxy'] . ":" . $FleetRow['fleet_end_system'] . ":" . $FleetRow['fleet_end_planet'] . "]";
      SendSimpleMessage ($TargetUserID, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport2);
    }
      // ↓↓ 如果艦隊(duì)回到出發(fā)地了,就開始卸貨,然后飛機(jī)入庫
       $fquery = "";
      if ($FleetRow['fleet_end_time'] $Count) {
          $fquery .= "`" . $resource[$Ship] . "` = `" . $resource[$Ship] . "` + '" . $Count['count'] . "', ";
        }
      } else {
        $fleet = explode(";", $FleetRow['fleet_array']);
        foreach($fleet as $a =&gt; $b) {
          if ($b != '') {
            $a = explode(",", $b);
            $fquery .= "{$resource[$a[0]]}={$resource[$a[0]]} + {$a[1]}, \n";
          }
        }
      }
      // → 到最后別忘了刪除這一條艦隊(duì)記錄,不然會(huì)一直占用航道。對(duì)其他艦隊(duì)任務(wù)也是一樣
       doquery ("DELETE FROM {{table}} WHERE `fleet_id` = " . $FleetRow["fleet_id"], 'fleets');
      if (!($FleetResult == "w")) {
        $QryUpdatePlanet = "UPDATE {{table}} SET ";
        $QryUpdatePlanet .= $fquery;
        $QryUpdatePlanet .= "`metal` = `metal` + " . $FleetRow['fleet_resource_metal'] . ", ";
        $QryUpdatePlanet .= "`crystal` = `crystal` + " . $FleetRow['fleet_resource_crystal'] . ", ";
        $QryUpdatePlanet .= "`deuterium` = `deuterium` + " . $FleetRow['fleet_resource_deuterium'] . " ";
        $QryUpdatePlanet .= "WHERE ";
        $QryUpdatePlanet .= "`galaxy` = " . $FleetRow['fleet_start_galaxy'] . " AND ";
        $QryUpdatePlanet .= "`system` = " . $FleetRow['fleet_start_system'] . " AND ";
        $QryUpdatePlanet .= "`planet` = " . $FleetRow['fleet_start_planet'] . " AND ";
        $QryUpdatePlanet .= "`planet_type` = " . $FleetRow['fleet_start_type'] . " LIMIT 1 ;";
        doquery($QryUpdatePlanet, 'planets');
      }
    }
  }
}

相關(guān)文章

  • PHP輸出英文時(shí)間日期的安全方法(RFC 1123格式)

    PHP輸出英文時(shí)間日期的安全方法(RFC 1123格式)

    這篇文章主要介紹了PHP輸出英文時(shí)間日期的安全方法,本文所指的英文時(shí)間日期為RFC 1123格式,總結(jié)了一個(gè)不受setlocale影響的函數(shù)gmdate,需要的朋友可以參考下
    2014-06-06
  • PHP 繪制網(wǎng)站登錄首頁圖片驗(yàn)證碼

    PHP 繪制網(wǎng)站登錄首頁圖片驗(yàn)證碼

    幾乎所有的網(wǎng)站登錄頁都會(huì)有驗(yàn)證碼,驗(yàn)證碼是一種安全保護(hù)機(jī)制,用于防止垃圾注冊(cè)機(jī)大量注冊(cè)用戶賬號(hào)占用服務(wù)器內(nèi)存從而使服務(wù)器癱瘓。接下來通過本文給大家介紹PHP 繪制網(wǎng)站登錄首頁圖片驗(yàn)證碼,需要的朋友參考下
    2016-04-04
  • PHP中,文件上傳

    PHP中,文件上傳

    PHP中,文件上傳...
    2006-12-12
  • codeigniter中測試通過的分頁類示例

    codeigniter中測試通過的分頁類示例

    這篇文章主要介紹了codeigniter中測試通過的分頁類示例,需要的朋友可以參考下
    2014-04-04
  • ThinkPHP自定義Redis處理SESSION的實(shí)現(xiàn)方法

    ThinkPHP自定義Redis處理SESSION的實(shí)現(xiàn)方法

    這篇文章主要介紹了ThinkPHP自定義Redis處理SESSION的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了ThinkPHP相關(guān)數(shù)據(jù)庫配置與自定義Redis處理session的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-05-05
  • 深入理解PHP內(nèi)核(一)

    深入理解PHP內(nèi)核(一)

    PHP作為一門簡單而強(qiáng)大的語言,能夠提供很多Web適用的語言特性。從實(shí)踐出發(fā),繼弱類型變量原理探究后,本文帶領(lǐng)大家深入理解php內(nèi)核(一)
    2015-11-11
  • PHP靜態(tài)調(diào)用非靜態(tài)方法的應(yīng)用分析

    PHP靜態(tài)調(diào)用非靜態(tài)方法的應(yīng)用分析

    本篇文章介紹了,PHP靜態(tài)調(diào)用非靜態(tài)方法的應(yīng)用分析。需要的朋友參考下
    2013-05-05
  • Laravel中簡約卻不簡單的Macroable宏指令詳解

    Laravel中簡約卻不簡單的Macroable宏指令詳解

    這篇文章主要給大家介紹了關(guān)于Laravel中簡約卻不簡單的Macroable宏指令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-07-07
  • ThinkPHP頁面跳轉(zhuǎn)success與error方法概述

    ThinkPHP頁面跳轉(zhuǎn)success與error方法概述

    這篇文章主要介紹了ThinkPHP頁面跳轉(zhuǎn)success與error方法概述,需要的朋友可以參考下
    2014-06-06
  • 利用PHP生成CSV文件簡單示例

    利用PHP生成CSV文件簡單示例

    眾所周知,CSV文件是以逗號(hào)(,)作為分隔符的一種文件,那么在知道組成原理的前提下,我們來操作它就方便多了。這篇文章主要介紹了利用PHP生成CSV文件的方法,文章給出了完整的示例代碼,有需要的朋友們可以參考借鑒。
    2016-12-12

最新評(píng)論