Jump to content

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

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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