Jump to content

Undefined offset


IvanVukoja

Recommended Posts

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

Link to comment
https://forums.phpfreaks.com/topic/297710-undefined-offset/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.