Olá pessoal. Desculpem a demora para postar, mas é que não tenho tido tempo para fazer novos artigos. Logo farei a continuação daquela Primeira Video-aula, mas por enquanto vamos ficar nesse artigo.
Bom, em alguns casos precisamos exibir os registros do banco de dados em colunas para economia de espaço, ou mesmo para uma melhor aparência. Se você se pergunta, “como se faz isso?”, está no artigo certo.
Veja o resultado final, clicando aqui.
1. Banco de dados
Vamos utilizar como um simples exemplo, uma tabela de produtos. Onde há os campos: cod, nome e valor.
CREATE TABLE IF NOT EXISTS `produtos` ( `cod` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(50) NOT NULL, `valor` double NOT NULL, PRIMARY KEY (`cod`) ) ENGINE =MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `produtos` (`cod`, `nome`, `valor`) VALUES (1, 'Produto 1', 1.99), (2, 'Produto 2', 5.19), (3, 'Produto 3', 8.25), (4, 'Produto 4', 12.99);
Criamos nossa tabela produtos e inserimos inicialmente 4 produtos para utilizarmos como exemplo.
2. Função GeraColunas()
A função GeraColunas() será responsável pela criação das colunas.
<?php function GeraColunas($pNumColunas, $pQuery) { // Executa a instrução SQL $resultado = mysql_query($pQuery); // Inicia a tabela echo ("<table width='100%' border='1' style='border-collapse:collapse; border-color: #999'>\n"); // Loops para gerar as colunas for($i = 0; $i <= mysql_num_rows($resultado); ++$i) { for ($intCont = 0; $intCont < $pNumColunas; $intCont++) { $linha = mysql_fetch_array($resultado); if ($i > $linha) { if ( $intCont < $pNumColunas-1) echo "</tr>\n"; break; } // Coloca cada valor do banco de dados em uma variável $codigo = $linha[0]; $produto = $linha[1]; $valor = $linha[2]; if ($intCont == 0) { echo "<tr>\n"; } // Aqui vai o conteudo, ou seja, exibimos o nome do produto e seu respectivo valor echo "<td align='center' height='50'><b>". $produto ."</b> <br /> R$ ". $valor ."</td>\n"; if ($intCont == $pNumColunas-1 ) { echo "</tr>\n"; } else { $i++; } } } // Fim da tabela echo ('</table>'); } ?>
Agora já temos nossa função, basta simplesmente chamá-la:
<?php // Comando SQL $sql = "SELECT * FROM produtos ORDER BY cod ASC"; /* Chamamos a função GeraColunas(), o primeiro parametro é o número de colunas e o segundo o comando SQL */ GeraColunas(2, $sql); ?>
Pronto, já exibimos nossos produtos em duas colunas. Agora você pode ajustar a função de acordo com a sua necessidade, como por exemplo, alterar a aparência da tabela, ou até mesmo criando uma nova tabela dentro do conteudo.
Espero que o artigo tenha sido útil a você, até mais!
Referência:
http://www.revistaphp.com.br/artigo.php?id=9