PageRenderTime 56ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/html/pages/admin/dmatch.php

https://github.com/graywh/utstats
PHP | 176 lines | 159 code | 13 blank | 4 comment | 4 complexity | bf3fc65f08fcd4f4c2bd0996695614fe MD5 | raw file
  1. <?php
  2. if (empty($import_adminkey) or isset($_REQUEST['import_adminkey']) or $import_adminkey != $adminkey) die('bla');
  3. $options['title'] = 'Delete match';
  4. $i = 0;
  5. $options['vars'][$i]['name'] = 'server';
  6. $options['vars'][$i]['type'] = 'server';
  7. $options['vars'][$i]['prompt'] = 'Choose the server where the match took place:';
  8. $options['vars'][$i]['caption'] = 'Server:';
  9. $i++;
  10. $options['vars'][$i]['name'] = 'mid';
  11. $options['vars'][$i]['type'] = 'match';
  12. $options['vars'][$i]['whereserver'] = 'server';
  13. $options['vars'][$i]['prompt'] = 'Choose the match to delete:';
  14. $options['vars'][$i]['caption'] = 'Match to delete:';
  15. $i++;
  16. $results = adminselect($options);
  17. $matchid = $results['mid'];
  18. echo'<br><table border="0" cellpadding="1" cellspacing="2" width="600">
  19. <tr>
  20. <td class="smheading" align="center" colspan="2">Deleting Match ID '.$matchid.'</td>
  21. </tr>
  22. <tr>
  23. <td class="smheading" align="left" width="200">Adjusting Rankings</td>';
  24. $sql_radjust = "SELECT pid, gid, rank FROM uts_player WHERE matchid = $matchid";
  25. $q_radjust = mysql_query($sql_radjust) or die(mysql_error());
  26. $pids = array();
  27. while ($r_radjust = mysql_fetch_array($q_radjust))
  28. {
  29. $pid = $r_radjust['pid'];
  30. $pids[] = $pid;
  31. $gid = $r_radjust['gid'];
  32. $rank = $r_radjust['rank'];
  33. $sql_crank = small_query("SELECT id, rank, matches FROM uts_rank WHERE pid = $pid AND gid = $gid");
  34. if (!$sql_crank) continue;
  35. $rid = $sql_crank['id'];
  36. $newrank = $sql_crank['rank']-$rank;
  37. $oldrank = $sql_crank['rank'];
  38. $matchcount = $sql_crank['matches']-1;
  39. mysql_query("UPDATE uts_rank SET rank = $newrank, prevrank = $oldrank, matches = $matchcount WHERE id = $rid") or die(mysql_error());
  40. mysql_query("DELETE FROM uts_rank WHERE matches = 0") or die(mysql_error());
  41. }
  42. echo'<td class="grey" align="left" width="400">Done</td>
  43. </tr>
  44. <tr>
  45. <td class="smheading" align="left" width="200">Removing Match Record:</td>';
  46. mysql_query("DELETE FROM uts_match WHERE id = $matchid") or die(mysql_error());
  47. echo'<td class="grey" align="left" width="400">Done</td>
  48. </tr>
  49. <tr>
  50. <td class="smheading" align="left" width="200">Removing Player Records:</td>';
  51. mysql_query("DELETE FROM uts_player WHERE matchid = $matchid") or die(mysql_error());
  52. echo'<td class="grey" align="left" width="400">Done</td>
  53. </tr>
  54. <tr>
  55. <td class="smheading" align="left" width="200">Removing Kill Matrix Entries:</td>';
  56. mysql_query("DELETE FROM uts_killsmatrix WHERE matchid = $matchid") or die(mysql_error());
  57. echo'<td class="grey" align="left" width="400">Done</td>
  58. </tr>
  59. <tr>
  60. <td class="smheading" align="left" width="200">Removing Weapon Stats:</td>';
  61. mysql_query("DELETE FROM uts_weaponstats WHERE matchid = $matchid") or die(mysql_error());
  62. echo'<td class="grey" align="left" width="400">Done</td>
  63. </tr>
  64. <tr>
  65. <td class="smheading" align="left" width="200">Amending Player Weapon Stats:</td>';
  66. foreach($pids as $pid)
  67. {
  68. // Update the player's weapon statistics (matchid 0)
  69. mysql_query(" REPLACE uts_weaponstats
  70. SELECT 0 AS matchid,
  71. pid,
  72. weapon,
  73. SUM(kills) AS kills,
  74. SUM(shots) AS shots,
  75. SUM(hits) AS hits,
  76. SUM(damage) AS damage,
  77. LEAST(ROUND(10000*SUM(hits)/SUM(shots))/100, 100) AS acc
  78. FROM uts_weaponstats
  79. WHERE pid = '$pid'
  80. AND weapon > 0
  81. AND matchid > 0
  82. GROUP BY weapon;"
  83. ) or die(mysql_error());
  84. // Update the player's match statistics (weapon 0)
  85. mysql_query(" REPLACE uts_weaponstats
  86. SELECT matchid,
  87. pid,
  88. 0 AS weapon,
  89. SUM(kills) AS kills,
  90. SUM(shots) AS shots,
  91. SUM(hits) AS hits,
  92. SUM(damage) AS damage,
  93. LEAST(ROUND(10000*SUM(hits)/SUM(shots))/100, 100) AS acc
  94. FROM uts_weaponstats
  95. WHERE matchid > 0
  96. AND pid = '$pid'
  97. AND weapon > 0
  98. GROUP BY matchid;"
  99. ) or die(mysql_error());
  100. // Update the player's match entry in uts_player
  101. mysql_query(" UPDATE uts_player AS p,
  102. uts_weaponstats AS w
  103. SET p.accuracy = w.acc
  104. WHERE w.matchid = p.matchid
  105. AND p.pid = '$pid'
  106. AND w.pid = p.pid
  107. AND w.weapon = 0;"
  108. ) or die(mysql_error());
  109. // Update the player's career statistics (weapon 0, match 0)
  110. mysql_query(" REPLACE uts_weaponstats
  111. SELECT 0 AS matchid,
  112. '$pid' AS pid,
  113. 0 AS weapon,
  114. SUM(kills) AS kills,
  115. SUM(shots) AS shots,
  116. SUM(hits) AS hits,
  117. SUM(damage) AS damage,
  118. LEAST(ROUND(10000*SUM(hits)/SUM(shots))/100, 100) AS acc
  119. FROM uts_weaponstats
  120. WHERE matchid > 0
  121. AND pid = '$pid'
  122. AND weapon > 0;"
  123. ) or die(mysql_error());
  124. }
  125. echo'<td class="grey" align="left" width="400">Done</td>
  126. </tr>
  127. <tr>
  128. <td class="smheading" align="left" width="200">Amending Global Weapon Stats:</td>';
  129. mysql_query(" REPLACE uts_weaponstats
  130. SELECT 0 AS matchid,
  131. 0 AS pid,
  132. weapon,
  133. SUM(kills) AS kills,
  134. SUM(shots) AS shots,
  135. SUM(hits) AS hits,
  136. SUM(damage) AS damage,
  137. LEAST(ROUND(10000*SUM(hits)/SUM(shots))/100, 100) AS acc
  138. FROM uts_weaponstats
  139. WHERE matchid > 0
  140. AND pid > 0
  141. AND weapon > 0
  142. GROUP BY weapon;"
  143. ) or die(mysql_error());
  144. mysql_query(" REPLACE uts_weaponstats
  145. SELECT 0 AS matchid,
  146. 0 AS pid,
  147. 0 AS weapon,
  148. SUM(kills) AS kills,
  149. SUM(shots) AS shots,
  150. SUM(hits) AS hits,
  151. SUM(damage) AS damage,
  152. LEAST(ROUND(10000*SUM(hits)/SUM(shots))/100, 100) AS acc
  153. FROM uts_weaponstats
  154. WHERE matchid > 0
  155. AND pid > 0
  156. AND weapon > 0;"
  157. ) or die(mysql_error());
  158. echo'<td class="grey" align="left" width="400">Done</td>
  159. </tr>
  160. <tr>
  161. <td class="smheading" align="center" colspan="2">Match Deleted - <a href="./admin.php?key='.$_REQUEST[key].'">Go Back To Admin Page</a></td>
  162. </tr></table>';
  163. ?>