IvanVukoja Posted August 10, 2015 Share Posted August 10, 2015 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 144Notice: Undefined offset: 2 in C:\xampp\htdocs\bracket\bracket.php on line 151Notice: Undefined offset: 2 in C:\xampp\htdocs\bracket\bracket.php on line 155Notice: Undefined offset: 3 in C:\xampp\htdocs\bracket\bracket.php on line 144Notice: Undefined offset: 3 in C:\xampp\htdocs\bracket\bracket.php on line 151Notice: Undefined offset: 3 in C:\xampp\htdocs\bracket\bracket.php on line 155Notice: Undefined offset: 4 in C:\xampp\htdocs\bracket\bracket.php on line 144Notice: Undefined offset: 4 in C:\xampp\htdocs\bracket\bracket.php on line 151Notice: Undefined offset: 4 in C:\xampp\htdocs\bracket\bracket.php on line 155Notice: Undefined offset: 5 in C:\xampp\htdocs\bracket\bracket.php on line 144Notice: Undefined offset: 5 in C:\xampp\htdocs\bracket\bracket.php on line 151Notice: Undefined offset: 5 in C:\xampp\htdocs\bracket\bracket.php on line 155Notice: Undefined offset: 6 in C:\xampp\htdocs\bracket\bracket.php on line 144Notice: Undefined offset: 6 in C:\xampp\htdocs\bracket\bracket.php on line 151Notice: Undefined offset: 6 in C:\xampp\htdocs\bracket\bracket.php on line 155 Quote Link to comment https://forums.phpfreaks.com/topic/297710-undefined-offset/ Share on other sites More sharing options...
ginerjm Posted August 10, 2015 Share Posted August 10, 2015 Look at those lines. You are referencing an element of an array that does not exist. That you must figure out yourself. YOu could do a var_dump before trying to use any of that array to see what indices you DO have in there. Quote Link to comment https://forums.phpfreaks.com/topic/297710-undefined-offset/#findComment-1518422 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.