Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal, estou tendo muitas dificuldades ao tentar criar uma tabela de campeonato (Bracket) com dados vindos do banco de dados e preciso da ajuda de vocês.
Possuo 3 tabelas no meu banco de dados contendo as informações que julgo necessárias para montar todo o sistema, porém não consigo pensar em como fazer a tabela de jogos.
Tabela contendo as informações dos times:
CREATE TABLE IF NOT EXISTS `team` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(35) NOT NULL,
`tag` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Extraindo dados da tabela team
--
INSERT INTO team (id, name, tag) VALUES
(1, 'Time1', 'T1'),
(2, 'Time2', 'T2'),
(3, 'Time3', 'T3'),
(4, 'Time4', 'T4');
Tabela contendo as informações dos times cadastrados no campeonato:
CREATE TABLE IF NOT EXISTS `season_team` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_season` int(10) unsigned NOT NULL,
`id_team` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Extraindo dados da tabela season_team
--
INSERT INTO season_team (id, id_season, id_team) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 1, 3),
(4, 1, 4);
Tabela contendo as informações sobre os jogos:
CREATE TABLE IF NOT EXISTS `match` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_season` int(10) unsigned NOT NULL,
`bracket` char(2) NOT NULL,
`round` int(10) unsigned NOT NULL,
`match` int(10) unsigned NOT NULL,
`id_team1` int(10) unsigned NOT NULL,
`id_team2` int(10) unsigned NOT NULL,
`score_team1` int(10) unsigned NOT NULL,
`score_team2` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Extraindo dados da tabela match
--
INSERT INTO match (id, id_season, bracket, round, match, id_team1, id_team2, score_team1, score_team2) VALUES
(1, 1, 'wb', 1, 1, 1, 4, 0, 0),
(2, 1, 'wb', 1, 2, 2, 3, 0, 0),
(3, 1, 'wb', 2, 1, 0, 0, 0, 0);
Até então a única coisa que consegui fazer foi uma tabela "vazia" e não tenho idéia de como faze-la a partir das informações do banco.
$participantes = 4;
$participante = $participantes;
$round = 0;
if($participante > 0)
{
while(($participante = (int)$participante / 2) > 0)
$round++;
}
$linhas = ($participantes * 2) - 1;
$colunas = $round;
echo '<table width="90%" align="center">';
for($coluna = 1; $coluna <= $colunas; $coluna++)
{
echo '<td><center><b>Round '.$coluna.'</b></center></td>';
}
for($linha = 0; $linha < $linhas; $linha++)
{
echo '<tr>';
for($coluna = 1; $coluna <= $colunas; $coluna++)
{
$modulo = pow(2, $coluna);
$shift = ((int)$modulo / 2) - 1;
$value = $linha - $shift;
$display = $value % $modulo == 0;
if($display)
{
echo '<td bgcolor="#0099CC">';
echo 'teste';
echo '</td>';
}
else
{
echo '<td></td>';
}
}
echo '</tr>';
}
echo '</table>';
Gostaria de saber se com essas informações é possível fazer a tabela ou se tenho que mudar algo, pois todas as maneiras que tentei até agora não deram certo.
Desde já agradeço.
Carregando comentários...