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

/admin_update_tournaments.php

https://gitlab.com/zanzilan/alp
PHP | 439 lines | 428 code | 6 blank | 5 comment | 158 complexity | 8d71f3f3565847b2e70c52811ed7bc95 MD5 | raw file
  1. <?php
  2. require_once 'include/_universal.php';
  3. $x = new universal('tournaments','tournament',1);
  4. if ($x->is_secure()) {
  5. if (empty($_GET) && empty($_POST)) {
  6. $x->display_slim('incorrect usage.','disp_tournament.php');
  7. } elseif (!empty($_POST) && !empty($_POST["id"])) {
  8. $tournament = $dbc->database_fetch_assoc($dbc->database_query('SELECT * FROM tournaments WHERE tourneyid='.(int)$_POST['id']));
  9. if (current_security_level() >= 2 || (current_security_level() >= 1 && $tournament['moderatorid'] == $_COOKIE['userid'])) {
  10. $allgood = true;
  11. if (!empty($_POST['matchid']) && !empty($_POST['server'])) {
  12. // change server for a match
  13. if (!$dbc->database_query("UPDATE tournament_matches SET server='".$_POST['server']."' WHERE id='".$_POST['matchid']."'")) {
  14. $allgood = false;
  15. }
  16. if ($allgood) {
  17. $str = 'success.';
  18. } else {
  19. $str = 'error!';
  20. }
  21. }
  22. if($tournament['ttype']==12&&!empty($_POST['matchid'])&&!empty($_POST['onlyscore'])) {
  23. // update boiloff score for one team.
  24. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score='".$_POST['onlyscore']."' WHERE tourneyid='".$tournament['tourneyid']."' AND id='".$_POST['matchid']."'")) {
  25. $str = 'unknown error';
  26. } else {
  27. $str = 'success';
  28. }
  29. } elseif ($tournament['ffa']) {
  30. require_once 'include/_top_smallwindow.php';
  31. if (!empty($_GET['matchid']) && !empty($_GET['i']) && !empty($_GET['j'])) {
  32. $str = 'incorrect usage';
  33. } else {
  34. $data = $dbc->database_query("SELECT * FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$_POST['matchid']."'");
  35. while ($row = $dbc->database_fetch_assoc($data)) {
  36. if ($_POST[$row['id'].'_score']===0) $temp = "'0.0'";
  37. elseif($_POST[$row['id'].'_score']==='') $temp = 'NULL';
  38. else $temp = "'".$_POST[$row['id'].'_score']."'";
  39. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score=".$temp." WHERE id='".$row['id']."'")) {
  40. $allgood = false;
  41. }
  42. }
  43. $nextmatch = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST['id']."' AND rnd='".($_POST['i']+1)."' AND mtc='".ceil($_POST['j']/4)."' AND bracket='".$_POST['b']."'"));
  44. $previouswinners = array();
  45. $data = $dbc->database_query("SELECT * FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$nextmatch['id']."' AND top='".($_POST['j']%4==2?'1':'0')."'");
  46. while ($row = $dbc->database_fetch_assoc($data)) {
  47. if ($row['team']!=0) $previouswinners[] = $row['team'];
  48. }
  49. $nextmatch_slots = ceil($dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$nextmatch['id']."'"))/2);
  50. $data = $dbc->database_query("SELECT * FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$_POST['matchid']."' ORDER BY score DESC LIMIT ".$nextmatch_slots);
  51. $baseid = $dbc->database_fetch_assoc($dbc->database_query("SELECT MIN(id) AS id FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$nextmatch['id']."' AND top='".($_POST['j']%4==2?'1':'0')."'"));
  52. $counter = 0;
  53. $newwinners = array();
  54. while($row = $dbc->database_fetch_assoc($data)) {
  55. if ($row['team'] != 0) { $newwinners[] = $row['team']; }
  56. if (!$dbc->database_query("UPDATE tournament_matches_teams SET team='".$row['team']."' WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$nextmatch['id']."' AND id='".($baseid['id']+$counter)."'")) {
  57. $allgood = false;
  58. }
  59. $counter++;
  60. }
  61. $garbage = array_diff($previouswinners,$newwinners);
  62. if(sizeof($garbage)>0) {
  63. $query = "UPDATE tournament_matches_teams SET team='0',score=NULL WHERE tourneyid='".$tournament['tourneyid']."' AND (";
  64. $counter = 1;
  65. foreach($garbage as $val) {
  66. $query .= "team='".$val."'";
  67. if(sizeof($garbage)!=$counter) $query .= ' OR ';
  68. $counter++;
  69. }
  70. $query .= ") AND matchid<'".$_POST['matchid']."'";
  71. if(!$dbc->database_query($query)) {
  72. $allgood = false;
  73. }
  74. }
  75. if($allgood) {
  76. $str = 'success.';
  77. } else {
  78. $str = 'error!';
  79. }
  80. } ?>
  81. <br />
  82. <div align="center"><b><?php echo $str; ?></b></div>
  83. <script language="javascript"><!--
  84. opener.location.reload(true);
  85. setTimeout('window.close()',1000);
  86. // --></script>
  87. <?php
  88. require_once "include/_bot_smallwindow.php";
  89. } else {
  90. if(!empty($_POST["i"])&&!empty($_POST["j"])&&isset($_POST["topscore"])&&isset($_POST["bottomscore"])&&!empty($_POST["matchid"])&&!empty($_POST["b"])) {
  91. if($tournament["per_team"]==1) {
  92. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_players WHERE tourneyid='".$tournament["tourneyid"]."'"));
  93. } elseif($tournament["per_team"]>1) {
  94. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_teams WHERE tourneyid='".$tournament["tourneyid"]."'"));
  95. }
  96. $NHPT = pow(2,ceil(log($n)/log(2)));
  97. $NLPT = pow(2,floor(log($n-1)/log(2)));
  98. if($_POST["b"]=="w") {
  99. $temp = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST["id"]."' AND rnd='".$_POST["i"]."' AND bracket='w' ORDER BY id LIMIT 1"));
  100. $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST["id"]."' AND rnd='".($_POST["i"]+1)."' AND mtc='".ceil($_POST["j"]/4)."' AND bracket='w'"));
  101. } else {
  102. if($n>($NHPT-(($NHPT-$NLPT)/2))) {
  103. if(($_POST["i"]+1)%2==0&&$_POST["i"]>1) $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST["id"]."' AND rnd='".($_POST["i"]+1)."' AND mtc='".ceil($_POST["j"]/2)."' AND bracket='".$_POST["b"]."'"));
  104. else $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST["id"]."' AND rnd='".($_POST["i"]+1)."' AND mtc='".ceil($_POST["j"]/4)."' AND bracket='".$_POST["b"]."'"));
  105. } else {
  106. if(($_POST["i"]+1)%2==1&&$_POST["i"]>1) $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST["id"]."' AND rnd='".($_POST["i"]+1)."' AND mtc='".ceil($_POST["j"]/2)."' AND bracket='".$_POST["b"]."'"));
  107. else $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST["id"]."' AND rnd='".($_POST["i"]+1)."' AND mtc='".ceil($_POST["j"]/4)."' AND bracket='".$_POST["b"]."'"));
  108. }
  109. }
  110. if($_POST["topscore"]===0) $temp = "'0.0'";
  111. elseif($_POST["topscore"]==='') $temp = "NULL";
  112. else $temp = "'".$_POST["topscore"]."'";
  113. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score=".$temp." WHERE matchid='".$_POST["matchid"]."' AND top='1'")) {
  114. $allgood = false;
  115. }
  116. if($_POST["bottomscore"]===0) $temp = "'0.0'";
  117. elseif($_POST["bottomscore"]==='') $temp = "NULL";
  118. else $temp = "'".$_POST["bottomscore"]."'";
  119. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score=".$temp." WHERE matchid='".$_POST["matchid"]."' AND top='0'")) {
  120. $allgood = false;
  121. }
  122. if($_POST["bottomscore"]==''&&$_POST["topscore"]=='') {
  123. $currwinner["team"] = 0;
  124. } else {
  125. $currwinner = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE matchid='".$_POST["matchid"]."' AND top='".($_POST["topscore"]>$_POST["bottomscore"]?"1":"0")."'"));
  126. }
  127. $temp = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE matchid='".$matchinfo["id"]."' AND top='".(($_POST["j"]%4==1)||($_POST["j"]%4==2))."'"));
  128. $previouswinner = $temp["team"];
  129. if($_POST["b"]=="l") {
  130. if($tournament["per_team"]==1) {
  131. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_players WHERE tourneyid='".$tournament["tourneyid"]."'"));
  132. } elseif($tournament["per_team"]>1) {
  133. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_teams WHERE tourneyid='".$tournament["tourneyid"]."'"));
  134. }
  135. $maxrounds = $dbc->database_fetch_assoc($dbc->database_query("SELECT MAX(rnd) as rnd FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND bracket='l'"));
  136. if(($_POST["i"]+1)==$maxrounds["rnd"]) {
  137. $top = 0;
  138. } else {
  139. $NHPT = pow(2,ceil(log($n)/log(2)));
  140. $NLPT = pow(2,floor(log($n-1)/log(2)));
  141. if($n>($NHPT-(($NHPT-$NLPT)/2))) {
  142. if(($_POST["i"]+1)%2==0) $top = 1;
  143. else $top = (($_POST["j"]%4==1)||($_POST["j"]%4==2));
  144. } else {
  145. if(($_POST["i"]+1)%2==1) $top = 1;
  146. else $top = (($_POST["j"]%4==1)||($_POST["j"]%4==2));
  147. }
  148. }
  149. } else {
  150. $top = (($_POST["j"]%4==1)||($_POST["j"]%4==2));
  151. }
  152. if(($_POST["topscore"]!=$_POST["bottomscore"]||($_POST["bottomscore"]==''&&$_POST["topscore"]==''))&&$previouswinner!=$currwinner["team"]) {
  153. if($previouswinner!=0) {
  154. $data = $dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_POST["id"]."' AND rnd>'".$_POST["i"]."' AND bracket='".$_POST["b"]."' ORDER BY id DESC");
  155. while($row = $dbc->database_fetch_assoc($data)) {
  156. if($dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE matchid='".$row["id"]."' AND team='".$previouswinner."'"))) {
  157. if($row["rnd"]>($_POST["i"]+1)) {
  158. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='0' WHERE matchid='".$row["id"]."' AND team='".$previouswinner."'")) {
  159. $allgood = false;
  160. }
  161. }
  162. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score=NULL WHERE matchid='".$row["id"]."'")) {
  163. $allgood = false;
  164. }
  165. }
  166. }
  167. }
  168. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='".$currwinner["team"]."' WHERE matchid='".$matchinfo["id"]."' AND top='".$top."'")) {
  169. $allgood = false;
  170. }
  171. if($_POST["b"]=="w"&&!empty($_POST["L_rnd"])&&!empty($_POST["L_mtc"])&&isset($_POST["L_top"])&&!empty($_POST["matchid"])) {
  172. $loser = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE tourneyid='".$tournament["tourneyid"]."' AND matchid='".$_POST["matchid"]."' AND team!='".$currwinner["team"]."'"));
  173. $losers_match = $dbc->database_fetch_assoc($dbc->database_query("SELECT id FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND rnd='".$_POST["L_rnd"]."' AND mtc='".$_POST["L_mtc"]."' AND bracket='l'"));
  174. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='".$loser["team"]."' WHERE matchid='".$losers_match["id"]."' AND top='".$_POST["L_top"]."'")) {
  175. $allgood = false;
  176. }
  177. }
  178. }
  179. } elseif($_POST["i"]==0&&($_POST["j"]==0||$_POST["j"]==1)&&$_POST["b"]=="l"&&isset($_POST["topscore"])&&isset($_POST["bottomscore"])) {
  180. $allgood = true;
  181. $winners_id = $dbc->database_fetch_assoc($dbc->database_query("SELECT id FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND bracket='w' ORDER BY rnd DESC LIMIT 1"));
  182. $losers_id = $dbc->database_fetch_assoc($dbc->database_query("SELECT id FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND bracket='l' ORDER BY rnd DESC LIMIT 1"));
  183. $matchid = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND rnd='0' AND mtc='".$_POST["j"]."' AND bracket='l'"));
  184. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score='".$_POST["topscore"]."' WHERE tourneyid='".$tournament["tourneyid"]."' AND top='1' AND matchid='".$winners_id["id"]."'")) {
  185. $allgood = false;
  186. }
  187. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score='".$_POST["bottomscore"]."' WHERE tourneyid='".$tournament["tourneyid"]."' AND top='0' AND matchid='".$losers_id["id"]."'")) {
  188. $allgood = false;
  189. }
  190. if($_POST["topscore"]!=$_POST["bottomscore"]) {
  191. $winner = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE tourneyid='".$tournament["tourneyid"]."' AND matchid='".($_POST["topscore"]>$_POST["bottomscore"]?$winners_id["id"]:$losers_id["id"])."'"));
  192. $query = "UPDATE tournament_matches_teams SET team='".$winner["team"]."' WHERE matchid='".$matchid["id"]."' AND tourneyid='".$tournament["tourneyid"]."' AND top='1'";
  193. if(!$dbc->database_query($query)) {
  194. $allgood = false;
  195. }
  196. }
  197. if($allgood) {
  198. $str = "success.";
  199. } else {
  200. $str = "error!";
  201. }
  202. } elseif(!empty($_POST["matchid"])&&isset($_POST["leftscore"])&&isset($_POST["rightscore"])) {
  203. $allgood = true;
  204. if($_POST["leftscore"]>$_POST["rightscore"]) {
  205. $temp = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE matchid='".$_POST["matchid"]."' AND top='1'"));
  206. $winner = $temp["team"];
  207. } elseif($_POST["leftscore"]<$_POST["rightscore"]) {
  208. $temp = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE matchid='".$_POST["matchid"]."' AND top='0'"));
  209. $winner = $temp["team"];
  210. }
  211. if(!$dbc->database_query("UPDATE tournament_matches SET top_x_advance='".($_POST["leftscore"]!=$_POST["rightscore"]?$winner:"0")."' WHERE id='".$_POST["matchid"]."'")) {
  212. $allgood = false;
  213. }
  214. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score='".$_POST["leftscore"]."' WHERE matchid='".$_POST["matchid"]."' AND top='1'")||!$dbc->database_query("UPDATE tournament_matches_teams SET score='".$_POST["rightscore"]."' WHERE matchid='".$_POST["matchid"]."' AND top='0'")) {
  215. $allgood = false;
  216. }
  217. } else {
  218. $str = "incorrect usage.";
  219. }
  220. if($allgood) {
  221. $str = "success.";
  222. } else {
  223. $str = "error!";
  224. }
  225. }
  226. if(!$tournament["ffa"]) $x->display_slim($str,"disp_tournament.php".(!empty($_POST["id"])?"?id=".$_POST["id"]:""),1);
  227. } else {
  228. $x->display_slim("unauthorized.","disp_tournament.php".(!empty($_POST["id"])?"?id=".$_POST["id"]:""),1);
  229. }
  230. } elseif(!empty($_GET)&&!empty($_GET["id"])) {
  231. $tournament = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournaments WHERE tourneyid='".$_GET["id"]."'"));
  232. if(current_security_level()>=2||(current_security_level()>=1&&$tournament["moderatorid"]==$_COOKIE["userid"])) {
  233. if($tournament['ttype']==12) {
  234. if(!empty($_GET['matchid'])&&!empty($_GET['w'])&&empty($_GET['act'])) {
  235. $current_match = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET['id']."' AND id='".$_GET['matchid']."'"));
  236. $next_match = $dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET['id']."' AND rnd='".($current_match['rnd']+1)."'");
  237. if($dbc->database_num_rows($next_match)) {
  238. $next_match_info = $dbc->database_fetch_assoc($next_match);
  239. $next_match_id = $next_match_info['id'];
  240. } else {
  241. $servers = $dbc->database_num_rows($dbc->database_query("SELECT * FROM servers WHERE tourneyid='".$tournament['tourneyid']."'"));
  242. $dbc->database_query("INSERT INTO tournament_matches (tourneyid, rnd, mtc, server) VALUES ('".$tournament['tourneyid']."','".($current_match['rnd']+1)."','1','".($servers?"1":"0")."')");
  243. $next_match_id = $dbc->database_insert_id();
  244. }
  245. if($dbc->database_query("INSERT INTO tournament_matches_teams (tourneyid, matchid, team) VALUES ('".$tournament['tourneyid']."','".$next_match_id."','".$_GET['w']."')")) {
  246. $str = 'success.';
  247. } else {
  248. $str = 'unknown error.';
  249. }
  250. } elseif(!empty($_GET['matchid'])&&!empty($_GET['team'])&&!empty($_GET['act'])&&$_GET['act']=='del') {
  251. $t_bool = true;
  252. if($dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$_GET['matchid']."'"))==1
  253. &&$dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$_GET['matchid']."' AND team='".$_GET['team']."'"))) {
  254. if(!$dbc->database_query("DELETE FROM tournament_matches WHERE tourneyid='".$tournament['tourneyid']."' AND id='".$_GET['matchid']."'")) {
  255. $t_bool = false;
  256. }
  257. }
  258. if(!$dbc->database_query("DELETE FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid>='".$_GET['matchid']."' AND team='".$_GET['team']."'")) {
  259. $t_bool = false;
  260. }
  261. $t_data = $dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$tournament['tourneyid']."' AND rnd>1");
  262. while($t_row = $dbc->database_fetch_assoc($t_data)) {
  263. if(!$dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE tourneyid='".$tournament['tourneyid']."' AND matchid='".$t_row['id']."'"))) {
  264. if(!$dbc->database_query("DELETE FROM tournament_matches WHERE tourneyid='".$tournament['tourneyid']."' AND id='".$t_row['id']."'")) {
  265. $t_bool = false;
  266. }
  267. }
  268. }
  269. if($t_bool) {
  270. $str = 'success.';
  271. } else {
  272. $str = 'unknown error.';
  273. }
  274. } else {
  275. $str = 'incorrect usage';
  276. }
  277. } elseif(!empty($_GET["act"])&&$_GET["act"]=="del"&&!empty($_GET["matchid"])) {
  278. $allgood = true;
  279. if($tournament["ttype"]==10) {
  280. if(!$dbc->database_query("UPDATE tournament_matches SET top_x_advance='0' WHERE tourneyid='".$_GET["id"]."' AND id='".$_GET["matchid"]."'")) {
  281. $allgood = false;
  282. }
  283. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score=NULL WHERE tourneyid='".$_GET["id"]."' AND matchid='".$_GET["matchid"]."'")) {
  284. $allgood = false;
  285. }
  286. } else {
  287. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='0' WHERE tourneyid='".$_GET["id"]."' AND id='".$_GET["matchid"]."'")) {
  288. $allgood = false;
  289. }
  290. }
  291. if($allgood) {
  292. $str = "success.";
  293. } else {
  294. $str = "error!";
  295. }
  296. } elseif(!empty($_GET["i"])&&!empty($_GET["j"])&&!empty($_GET["w"])&&!empty($_GET["b"])) {
  297. //($i+1),ceil($j/4),($j%4==3)||($j%4==0)
  298. $allgood = true;
  299. if($tournament["per_team"]==1) {
  300. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_players WHERE tourneyid='".$tournament["tourneyid"]."'"));
  301. } elseif($tournament["per_team"]>1) {
  302. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_teams WHERE tourneyid='".$tournament["tourneyid"]."'"));
  303. }
  304. $NHPT = pow(2,ceil(log($n)/log(2)));
  305. $NLPT = pow(2,floor(log($n-1)/log(2)));
  306. if($_GET["b"]=="w") {
  307. $temp = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".$_GET["i"]."' AND bracket='w' ORDER BY id LIMIT 1"));
  308. $firstmatchid = $temp["id"];
  309. $lastmatchid = $temp["id"]-1+$dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".$_GET["i"]."' AND bracket='w'"));
  310. $winnersmatch = $dbc->database_fetch_assoc($dbc->database_query("SELECT matchid FROM tournament_matches_teams WHERE team='".$_GET["w"]."' AND tourneyid='".$tournament["tourneyid"]."' AND matchid<=".$lastmatchid." AND matchid>=".$firstmatchid));
  311. $oldmatch = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".($_GET["i"])."' AND id='".$winnersmatch["matchid"]."' AND bracket='w'"));
  312. $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".($_GET["i"]+1)."' AND mtc='".ceil($_GET["j"]/4)."' AND bracket='w'"));
  313. } else {
  314. if($n>($NHPT-(($NHPT-$NLPT)/2))) {
  315. if(($_GET["i"]+1)%2==0&&$_GET["i"]>1) $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".($_GET["i"]+1)."' AND mtc='".ceil($_GET["j"]/2)."' AND bracket='".$_GET["b"]."'"));
  316. else $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".($_GET["i"]+1)."' AND mtc='".ceil($_GET["j"]/4)."' AND bracket='".$_GET["b"]."'"));
  317. } else {
  318. if(($_GET["i"]+1)%2==1&&$_GET["i"]>1) $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".($_GET["i"]+1)."' AND mtc='".ceil($_GET["j"]/2)."' AND bracket='".$_GET["b"]."'"));
  319. else $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd='".($_GET["i"]+1)."' AND mtc='".ceil($_GET["j"]/4)."' AND bracket='".$_GET["b"]."'"));
  320. }
  321. }
  322. if($tournament["ffa"]) {
  323. if($dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE team='".$_GET["w"]."' AND matchid='".$matchinfo["id"]."'"))) {
  324. // do nothing
  325. } elseif($dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE team='0' AND matchid='".$matchinfo["id"]."' AND top='".(($_GET["j"]%4==1)||($_GET["j"]%4==2))."'"))) {
  326. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='".$_GET["w"]."' WHERE matchid='".$matchinfo["id"]."' AND team='0' AND top='".(($_GET["j"]%4==1)||($_GET["j"]%4==2))."' LIMIT 1")) {
  327. $allgood = false;
  328. }
  329. } else {
  330. $temp = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE matchid='".$matchinfo["id"]."' AND top='".(($_GET["j"]%4==1)||($_GET["j"]%4==2))."'"));
  331. $previouswinner = $temp["team"];
  332. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='".$_GET["w"]."' WHERE matchid='".$matchinfo["id"]."' AND team='".$temp["team"]."' AND top='".(($_GET["j"]%4==1)||($_GET["j"]%4==2))."' LIMIT 1")) {
  333. $allgood = false;
  334. }
  335. }
  336. } else {
  337. if($tournament["per_team"]==1) {
  338. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_players WHERE tourneyid='".$tournament["tourneyid"]."'"));
  339. } elseif($tournament["per_team"]>1) {
  340. $n = $dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_teams WHERE tourneyid='".$tournament["tourneyid"]."'"));
  341. }
  342. $temp = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE matchid='".$matchinfo["id"]."' AND top='".(($_GET["j"]%4==1)||($_GET["j"]%4==2))."'"));
  343. $previouswinner = $temp["team"];
  344. if($_GET["b"]=="l") {
  345. $maxrounds = $dbc->database_fetch_assoc($dbc->database_query("SELECT MAX(rnd) as rnd FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND bracket='l'"));
  346. if(($_GET["i"]+1)==$maxrounds["rnd"]) {
  347. $top = 0;
  348. } else {
  349. $NHPT = pow(2,ceil(log($n)/log(2)));
  350. $NLPT = pow(2,floor(log($n-1)/log(2)));
  351. if($n>($NHPT-(($NHPT-$NLPT)/2))) {
  352. if(($_GET["i"]+1)%2==0) $top = 1;
  353. else $top = (($_GET["j"]%4==1)||($_GET["j"]%4==2));
  354. } else {
  355. if(($_GET["i"]+1)%2==1) $top = 1;
  356. else $top = (($_GET["j"]%4==1)||($_GET["j"]%4==2));
  357. }
  358. }
  359. } else {
  360. $top = (($_GET["j"]%4==1)||($_GET["j"]%4==2));
  361. }
  362. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='".$_GET["w"]."' WHERE matchid='".$matchinfo["id"]."' AND top='".$top."'")) {
  363. $allgood = false;
  364. }
  365. if($_GET["b"]=="w"&&!empty($_GET["L_rnd"])&&!empty($_GET["L_mtc"])&&isset($_GET["L_top"])) {
  366. $loser = $dbc->database_fetch_assoc($dbc->database_query("SELECT team FROM tournament_matches_teams WHERE tourneyid='".$tournament["tourneyid"]."' AND matchid='".$oldmatch["id"]."' AND team!='".$_GET["w"]."'"));
  367. $losers_match = $dbc->database_fetch_assoc($dbc->database_query("SELECT id FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND rnd='".$_GET["L_rnd"]."' AND mtc='".$_GET["L_mtc"]."' AND bracket='l'"));
  368. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='".$loser["team"]."' WHERE matchid='".$losers_match["id"]."' AND top='".$_GET["L_top"]."'")) {
  369. $allgood = false;
  370. }
  371. }
  372. }
  373. if($previouswinner!=0&&($previouswinner!=$_GET["w"]||(!empty($_GET["act"])&&$_GET["act"]=="del"))) {
  374. $data = $dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$_GET["id"]."' AND rnd>='".$_GET["i"]."' AND bracket='".$_GET["b"]."' ORDER BY id DESC");
  375. while($row = $dbc->database_fetch_assoc($data)) {
  376. if($dbc->database_num_rows($dbc->database_query("SELECT * FROM tournament_matches_teams WHERE matchid='".$row["id"]."' AND team='".$previouswinner."'"))) {
  377. if(!empty($_GET["act"])&&$_GET["act"]=="del") $temp = 0;
  378. else $temp = 1;
  379. if($row["rnd"]>($_GET["i"]+$temp)) {
  380. if(!$dbc->database_query("UPDATE tournament_matches_teams SET team='0' WHERE matchid='".$row["id"]."' AND team='".$previouswinner."'")) {
  381. $allgood = false;
  382. }
  383. }
  384. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score=NULL WHERE matchid='".$row["id"]."'")) {
  385. $allgood = false;
  386. }
  387. }
  388. }
  389. }
  390. if($allgood) {
  391. $str = "success.";
  392. } else {
  393. $str = "error!";
  394. }
  395. } elseif($_GET["i"]==0&&($_GET["j"]==0||$_GET["j"]==1)&&!empty($_GET["w"])&&$_GET["b"]=="l") {
  396. $allgood = true;
  397. $matchid = $dbc->database_fetch_assoc($dbc->database_query("SELECT * FROM tournament_matches WHERE tourneyid='".$tournament["tourneyid"]."' AND rnd='0' AND mtc='".$_GET["j"]."' AND bracket='l'"));
  398. $query = "UPDATE tournament_matches_teams SET team='".$_GET["w"]."' WHERE matchid='".$matchid["id"]."' AND tourneyid='".$tournament["tourneyid"]."' AND top='1'";
  399. if(!$dbc->database_query($query)) {
  400. $allgood = false;
  401. }
  402. if($allgood) {
  403. $str = "success.";
  404. } else {
  405. $str = "error!";
  406. }
  407. } elseif(!empty($_GET["matchid"])&&!empty($_GET["w"])) {
  408. $allgood = true;
  409. $matchinfo = $dbc->database_fetch_assoc($dbc->database_query("SELECT top_x_advance FROM tournament_matches WHERE id='".$_GET["matchid"]."'"));
  410. if($matchinfo["top_x_advance"]!=$_GET["w"]) {
  411. if(!$dbc->database_query("UPDATE tournament_matches SET top_x_advance='".$_GET["w"]."' WHERE id='".$_GET["matchid"]."'")) {
  412. $allgood = false;
  413. }
  414. if(!$dbc->database_query("UPDATE tournament_matches_teams SET score=NULL WHERE matchid='".$_GET["matchid"]."'")) {
  415. $allgood = false;
  416. }
  417. }
  418. if($allgood) {
  419. $str = "success.";
  420. } else {
  421. $str = "error!";
  422. }
  423. } else {
  424. $str = "incorrect usage.";
  425. }
  426. $x->display_slim($str,"disp_tournament.php".(!empty($_GET["id"])?"?id=".$_GET["id"]:""),1);
  427. } else {
  428. $x->display_slim("unauthorized.","disp_tournament.php".(!empty($_GET["id"])?"?id=".$_GET["id"]:""),1);
  429. }
  430. } else {
  431. $x->display_slim("incorrect usage.","disp_tournament.php");
  432. }
  433. } ?>