Jump to content

IvanVukoja

New Members
  • Posts

    5
  • Joined

  • Last visited

IvanVukoja's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. I get Undefined offset error. I do not know how to fix it. I work on the tournament bracket. I get first row of players but in other lines can not receive a player's name occurs to me: Undefined offset: <?php include('include.php'); class bracket { //Bring In Database Details From Include.PHP var $username = 'root'; var $password = ''; var $database = 'tournament1'; //Init Class Variables var $tournament_name; var $tournament_size; var $tournament_format; var $tournament_id; var $result_servers; var $result_stvs; var $result_matches; var $result_teams; //************************************************************************************* // schedule bracket // Input - The tournament ID used to identify which tournament we are scheduling for // Operation - This constructor reads the required information from the databas and assigns the following class values: // tournament_name; // tournament_size; // tournament_format; // tournament_id; // result_servers; // result_stvs; // result_matches; // result_teams; //************************************************************************************* function bracket($tourn_id) { //Save the Tournament ID $this->tournament_id = $tourn_id; //Collect All Required Information To Draw a Bracket mysql_connect('localhost', $this->username, $this->password); @mysql_select_db($this->database) or die("Unable to select database"); $query = "SELECT * FROM tms_tournament WHERE id = " . $tourn_id; $result_tournament = mysql_query($query) or die('Error, query failed'); $row = mysql_fetch_assoc($result_tournament); $this->tournament_name = $row['name']; $this->tournament_size = $row['size']; $this->tournament_format = $row['format']; mysql_free_result($result_tournament); //read and save information from database $query = "SELECT * FROM tms_servers WHERE id_tournament = " . $tourn_id; $this->result_servers = mysql_query($query) or die('Error, query failed'); $query = "SELECT * FROM tms_stvs WHERE id_tournament = " . $tourn_id; $this->result_stvs = mysql_query($query) or die('Error, query failed'); $query = "SELECT * FROM tms_matches WHERE id_tournament = " . $tourn_id; $this->result_matches = mysql_query($query) or die('Error, query failed'); $query = "SELECT * FROM tms_teams_" . $tourn_id . " WHERE id_tournament = " . $tourn_id; $this->result_teams = mysql_query($query) or die('Error, query failed'); } //************************************************************************************* // Function draw // Operation - Called to display a single elimination bracket //************************************************************************************* function draw( ) { $total_rounds = log($this->tournament_size, 2) + 1; //total rounds $row = array( ); $col = array( $row ); //create a data type to hold our bracket information //Generate a datastructure to hold all the information required to layout the bracket for($i = 1; $i <= $total_rounds; $i++) { $round_matches = $this->getmatches($i); $matches = pow(2, $total_rounds - $i); //calc how many matches for this round $interval = pow(2, $i); // calc the interval for layout spacing $offset = pow(2, $i - 1); // each round is offset by a differnt amount to form the bracket pyramid for($c = 1; $c <= ($this->tournament_size * 2) + 1; $c++) { if($c < $offset) { // blank space $col[$i][$c] = 0; } //$c < $offset elseif($c > (($this->tournament_size * 2) + 1) - $offset) { // blank space $col[$i][$c] = 0; } //$c > (($this->tournament_size * 2) + 1) - $offset elseif($c == $offset) { if($i == $total_rounds) { //No match but tournament winner $col[$i][$c] = "Champion"; } //$i == $total_rounds else { //print a team here $tmp_array = array_shift($round_matches); $col[$i][$c] = $tmp_array['print_team']; } } //$c == $offset elseif((($c - $offset) % $interval) == 0) { //print a team here $tmp_array = array_shift($round_matches); $col[$i][$c] = $tmp_array['print_team']; } //(($c - $offset) % $interval) == 0 elseif($c == ($offset * 2)) { //print match here $col[$i][$c] = "Match" . $tmp_array['id']; } //$c == ($offset * 2) elseif((($c - $offset * 2) % ($interval * 2)) == 0) { //print match here $col[$i][$c] = "Match" . $tmp_array['id']; } //(($c - $offset * 2) % ($interval * 2)) == 0 else { $col[$i][$c] = 0; // blank space } print("<br>"); } //$c = 1; $c <= ($this->tournament_size * 2) + 1; $c++ // layout the bracket using html tables and the data struct created above: col print("<table width='100%' border='5'>"); print("<tr>"); for($i = 1; $i <= $total_rounds - 1; $i++) { print("<th>Round " . (string) $i . "</th>"); } //$i = 1; $i <= $total_rounds - 1; $i++ print("</tr>"); for($c = 1; $c <= ($this->tournament_size * 2); $c++) { print("<tr>"); for($i = 1; $i <= $total_rounds + 1; $i++) { if(strcmp(substr($col[$i][$c], 0, 5), "Match") == 0)// line 144 { $tmp_array = $this->getmatch(substr($col[$i][$c], 5)); $datetime = new DateTime($tmp_array['timestamp']); print("<td align='center' bgcolor='#FFE4E1'><table><tr><td align='center'>" . $datetime->format("D, jS F Y gA") . "</td></tr><tr><td align='center'>stv - " . $this->getstvdetails($tmp_array['id_stv']) . "</td></tr></table> </td>"); } //strcmp(substr($col[$i][$c], 0, 5), "Match") == 0 elseif(strcmp(substr($col[$i][$c], 0, 5), "Teams") == 0)// line 151 { print("<td align='center' bgcolor='#dddddd'>" . $this->getteamname(substr($col[$i][$c], 5)) . "</td>"); } //strcmp(substr($col[$i][$c], 0, 5), "Teams") == 0 elseif($col[$i][$c])// line 155 { print("<td align='center' bgcolor='#dddddd'>" . $col[$i][$c] . "</td>"); } //$col[$i][$c] else { print("<td height='40'></td>"); } } //$i = 1; $i <= $total_rounds + 1; $i++ print("</tr>"); } //$c = 1; $c <= ($this->tournament_size * 2); $c++ print("</table>"); } //$i = 1; $i <= $total_rounds; $i++ } //************************************************************************************* // Function getmatch // Input - match_id // Operation - Retrives all the information saved for the parsed match_id //************************************************************************************* function getmatch($match_id) { $query = "SELECT * FROM tms_matches WHERE id = " . (string) $match_id; $result = mysql_query($query); $row = mysql_fetch_assoc($result); mysql_free_result($result); return $row; } //************************************************************************************* // Function getteamname // Input - team_id // Operation - Returns the name of the team with the parsed team ID //*********************************************************************************** ** function getteamname($team_id) { $query = "SELECT name FROM tms_teams_" . (string) $this->tournament_id . " WHERE id = " . (string) $team_id; $result = mysql_query($query) or die('Error, query failed'); return mysql_result($result, 0); } //************************************************************************************* // Function getstvdetails // Input - stv_id // Operation - Returns the IP Address of the parsed stv id //************************************************************************************* function getstvdetails($stv_id) { $query = "SELECT address FROM tms_stvs WHERE id = " . (string) $stv_id; $result = mysql_query($query); return mysql_result($result, 0); } //************************************************************************************* // Function getmatches // Input round_no // Operation - Returns an array of all the matches for the parse round. The array is sorted by the position field. //************************************************************************************* function getmatches($round_no) { $matches_avail = array( ); $tmp_row = array( ); $query = "SELECT * FROM tms_matches WHERE id_tournament = " . $this->tournament_id . " AND round = " . (string) $round_no . " ORDER BY position"; $result = mysql_query($query); while($row = mysql_fetch_assoc($result)) { $tmp_row = $row; if($row['status'] == 1) { $row = array_merge($row, array( "print_team" => "Winner of " . $row['id_match_parent_a'] )); } //$row['status'] == 1 else { $row = array_merge($row, array( "print_team" => "Teams" . $row['id_team_a'] )); //team A } $matches_avail[ ] = $row; $row = $tmp_row; if($row['status'] == 1) { $row = array_merge($row, array( "print_team" => "Winner of " . $row['id_match_parent_b'] )); } //$row['status'] == 1 else { $row = array_merge($row, array( "print_team" => "Teams" . $row['id_team_b'] )); //team B } $matches_avail[ ] = $row; unset($tmp_row); } //$row = mysql_fetch_assoc($result) return $matches_avail; } //************************************************************************************* // destructor // Operation - Frees memory held by SQL result sets //************************************************************************************* function __destruct( ) { mysql_free_result($this->result_servers); mysql_free_result($this->result_stvs); mysql_free_result($this->result_matches); mysql_free_result($this->result_teams); mysql_close(); } } ?> Notice: Undefined offset: 2 in C:\xampp\htdocs\bracket\bracket.php on line 144 Notice: Undefined offset: 2 in C:\xampp\htdocs\bracket\bracket.php on line 151 Notice: Undefined offset: 2 in C:\xampp\htdocs\bracket\bracket.php on line 155 Notice: Undefined offset: 3 in C:\xampp\htdocs\bracket\bracket.php on line 144 Notice: Undefined offset: 3 in C:\xampp\htdocs\bracket\bracket.php on line 151 Notice: Undefined offset: 3 in C:\xampp\htdocs\bracket\bracket.php on line 155 Notice: Undefined offset: 4 in C:\xampp\htdocs\bracket\bracket.php on line 144 Notice: Undefined offset: 4 in C:\xampp\htdocs\bracket\bracket.php on line 151 Notice: Undefined offset: 4 in C:\xampp\htdocs\bracket\bracket.php on line 155 Notice: Undefined offset: 5 in C:\xampp\htdocs\bracket\bracket.php on line 144 Notice: Undefined offset: 5 in C:\xampp\htdocs\bracket\bracket.php on line 151 Notice: Undefined offset: 5 in C:\xampp\htdocs\bracket\bracket.php on line 155 Notice: Undefined offset: 6 in C:\xampp\htdocs\bracket\bracket.php on line 144 Notice: Undefined offset: 6 in C:\xampp\htdocs\bracket\bracket.php on line 151 Notice: Undefined offset: 6 in C:\xampp\htdocs\bracket\bracket.php on line 155
  2. bracket.php <?php // PHP Class bracket // Bracket builder for GotGames // Author Benjamin Thomas // October 2009 class bracket { //Bring In Database Details From Include.PHP var $username = DB_USER; var $password = DB_PASS; var $database = DB_NAME; //Init Class Variables var $tournament_name; var $tournament_size; var $tournament_format; var $tournament_id; var $result_servers; var $result_stvs; var $result_matches; var $result_teams; //************************************************************************************* // schedule bracket // Input - The tournament ID used to identify which tournament we are scheduling for // Operation - This constructor reads the required information from the databas and assigns the following class values: // tournament_name; // tournament_size; // tournament_format; // tournament_id; // result_servers; // result_stvs; // result_matches; // result_teams; //************************************************************************************* function bracket($tourn_id) { //Save the Tournament ID $this->tournament_id = $tourn_id; //Collect All Required Information To Draw a Bracket mysql_connect('localhost', $this->username, $this->password); \mysql_select_db($this->database) or die("Unable to select database"); $query = "SELECT * FROM tms_tournament WHERE id = " . $tourn_id; $result_tournament = mysql_query($query) or die('Error, query failed'); $row = mysql_fetch_assoc($result_tournament); $this->tournament_name = $row['name']; $this->tournament_size = $row['size']; $this->tournament_format = $row['format']; mysql_free_result($result_tournament); //read and save information from database $query = "SELECT * FROM tms_servers WHERE id_tournament = " . $tourn_id; $this->result_servers = mysql_query($query) or die('Error, query failed'); $query = "SELECT * FROM tms_stvs WHERE id_tournament = " . $tourn_id; $this->result_stvs = mysql_query($query) or die('Error, query failed'); $query = "SELECT * FROM tms_matches WHERE id_tournament = " . $tourn_id; $this->result_matches = mysql_query($query) or die('Error, query failed'); $query = "SELECT * FROM tms_teams_" . $tourn_id . " WHERE id_tournament = " . $tourn_id; $this->result_teams = mysql_query($query) or die('Error, query failed'); } //************************************************************************************* // Function draw // Operation - Called to display a single elimination bracket //************************************************************************************* function draw( ) { $total_rounds = log($this->tournament_size, 2) + 1; //total rounds $row = array( ); $col = array( $row ); //create a data type to hold our bracket information //Generate a datastructure to hold all the information required to layout the bracket for($i = 1; $i <= $total_rounds; $i++) { $round_matches = $this->getmatches($i); $matches = pow(2, $total_rounds - $i); //calc how many matches for this round $interval = pow(2, $i); // calc the interval for layout spacing $offset = pow(2, $i - 1); // each round is offset by a differnt amount to form the bracket pyramid for($c = 1; $c <= ($this->tournament_size * 2) + 1; $c++) { if($c < $offset) { // blank space $col[$i][$c] = 0; } //$c < $offset elseif($c > (($this->tournament_size * 2) + 1) - $offset) { // blank space $col[$i][$c] = 0; } //$c > (($this->tournament_size * 2) + 1) - $offset elseif($c == $offset) { if($i == $total_rounds) { //No match but tournament winner $col[$i][$c] = "Champion"; } //$i == $total_rounds else { //print a team here $tmp_array = array_shift($round_matches); $col[$i][$c] = $tmp_array['print_team']; } } //$c == $offset elseif((($c - $offset) % $interval) == 0) { //print a team here $tmp_array = array_shift($round_matches); $col[$i][$c] = $tmp_array['print_team']; } //(($c - $offset) % $interval) == 0 elseif($c == ($offset * 2)) { //print match here $col[$i][$c] = "Match" . $tmp_array['id']; } //$c == ($offset * 2) elseif((($c - $offset * 2) % ($interval * 2)) == 0) { //print match here $col[$i][$c] = "Match" . $tmp_array['id']; } //(($c - $offset * 2) % ($interval * 2)) == 0 else { $col[$i][$c] = 0; // blank space } print("<br>"); //$c = 1; $c <= ($this->tournament_size * 2) + 1; $c++ // layout the bracket using html tables and the data struct created above: col print("<table width='100%' border='5'>"); print("<tr>"); for($i = 1; $i <= $total_rounds - 1; $i++) { print("<th>Round " . (string) $i . "</th>"); } //$i = 1; $i <= $total_rounds - 1; $i++ print("</tr>"); for($c = 1; $c <= ($this->tournament_size * 2); $c++) print("<tr>"); for($i = 1; $i <= $total_rounds + 1; $i++) if(strcmp(substr($col[$i][$c], 0, 5), "Match") == 0) { $tmp_array = $this->getmatch(substr($col[$i][$c], 5)); $datetime = new DateTime($tmp_array['timestamp']); print("<td align='center' bgcolor='#FFE4E1'><table><tr><td align='center'>" . $datetime->format("D, jS F Y gA") . "</td></tr><tr><td align='center'>stv - " . $this->getstvdetails($tmp_array['id_stv']) . "</td></tr></table> </td>"); } //strcmp(substr($col[$i][$c], 0, 5), "Match") == 0 elseif(strcmp(substr($col[$i][$c], 0, 5), "Teams") == 0) { print("<td align='center' bgcolor='#dddddd'>" . $this->getteamname(substr($col[$i][$c], 5)) . "</td>"); } //strcmp(substr($col[$i][$c], 0, 5), "Teams") == 0 elseif($col[$i][$c]) { print("<td align='center' bgcolor='#dddddd'>" . $col[$i][$c] . "</td>"); } //$col[$i][$c] else { print("<td height='40'></td>"); } //$i = 1; $i <= $total_rounds + 1; $i++ print("</tr>"); //$c = 1; $c <= ($this->tournament_size * 2); $c++ print("</table>"); //$i = 1; $i <= $total_rounds; $i++ //************************************************************************************* // Function getmatch // Input - match_id // Operation - Retrives all the information saved for the parsed match_id //************************************************************************************* function getmatch($match_id) { $query = "SELECT * FROM tms_matches WHERE id = " . (string) $match_id; $result = mysql_query($query); $row = mysql_fetch_assoc($result); mysql_free_result($result); return $row; } //************************************************************************************* // Function getteamname // Input - team_id // Operation - Returns the name of the team with the parsed team ID //*********************************************************************************** ** function getteamname($team_id) { $query = "SELECT name FROM tms_teams_" . (string) $this->tournament_id . " WHERE id = " . (string) $team_id; $result = mysql_query($query) or die('Error, query failed'); return mysql_result($result, 0); } //************************************************************************************* // Function getstvdetails // Input - stv_id // Operation - Returns the IP Address of the parsed stv id //************************************************************************************* function getstvdetails($stv_id) { $query = "SELECT address FROM tms_stvs WHERE id = " . (string) $stv_id; $result = mysql_query($query); return mysql_result($result, 0); } //************************************************************************************* // Function getmatches // Input round_no // Operation - Returns an array of all the matches for the parse round. The array is sorted by the position field. //************************************************************************************* function getmatches($round_no) { $matches_avail = array( ); $tmp_row = array( ); $query = "SELECT * FROM tms_matches WHERE id_tournament = " . $this->tournament_id . " AND round = " . (string) $round_no . " ORDER BY position"; $result = mysql_query($query); while($row = mysql_fetch_assoc($result)) { $tmp_row = $row; if($row['status'] == 1) { $row = array_merge($row, array( "print_team" => "Winner of " . $row['id_match_parent_a'] )); } //$row['status'] == 1 else { $row = array_merge($row, array( "print_team" => "Teams" . $row['id_team_a'] )); //team A } $matches_avail[ ] = $row; $row = $tmp_row; if($row['status'] == 1) { $row = array_merge($row, array( "print_team" => "Winner of " . $row['id_match_parent_b'] )); } //$row['status'] == 1 else { $row = array_merge($row, array( "print_team" => "Teams" . $row['id_team_b'] )); //team B } $matches_avail[ ] = $row; unset($tmp_row); } //$row = mysql_fetch_assoc($result) return $matches_avail; } //************************************************************************************* // destructor // Operation - Frees memory held by SQL result sets //************************************************************************************* function __destruct( ) { mysql_free_result($this->result_servers); mysql_free_result($this->result_stvs); mysql_free_result($this->result_matches); mysql_free_result($this->result_teams); mysql_close(); } } }}} ?> tms_tournament CREATE TABLE `tms_tournament` ( `id` int(11) NOT NULL auto_increment, `id_game` int(11) NOT NULL, `name` varchar(128) collate latin1_general_ci NOT NULL, `format` varchar(16) collate latin1_general_ci NOT NULL, `starttime` varchar(19) collate latin1_general_ci NOT NULL, `size` int(11) NOT NULL, `status` int(11) NOT NULL, `frequency` varchar(16) collate latin1_general_ci NOT NULL, `seeded` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1830 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci PACK_KEYS=1 tms_stvs CREATE TABLE `tms_stvs` ( `id` int(11) NOT NULL auto_increment, `id_game` int(11) NOT NULL, `id_tournament` int(11) NOT NULL, `address` varchar(32) collate latin1_general_ci NOT NULL, `rcon` varchar(32) collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=60 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
  3. i jusing xampp and i did it in xampp/php/php.ini
  4. Can you help me when to run page when i atempt i get wsod. I switched on error reporting, but still do not know what the problem is. I need it for a project at school bracket.php. can you please help me how to fix it. tournament.zip
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.