Olá galera,
Devido à motivos de trabalho estou meio sem tempo de escrever no blog, mas felizmente hoje vou poder dar uma refrescada aqui.
Bom, nesse post vou compartilhar com vocês uma função que já me auxiliou muito no desenvolvimento de projetos em php. Ela tem como objetivo pegar o resultado de uma consulta feita no banco de dados e gerar uma tabela HTML com os registros.
Veja:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php /** * Gera uma tabela HTML com os registros do resultado de uma consulta SQL * @author Rafael Wendel Pinheiro * @param ResultSet $rs resultado de uma consulta sql * @param Array $headers Array com os cabeçalhos da tabela * @return void */ function geraTabela($rs, $headers) { $s = "<table class='tabela' cellspacing='0' cellpadding='0'>n"; $s .= "t<tr class='titulo'>n"; foreach ($headers as $header) { $s .= "tt<td class='titulocelula'>$header</td>n"; } $s .= "t</tr>n"; while ($row = mysql_fetch_object($rs)){ $s .= "t<tr class='linha'>n"; foreach ($row as $data){ $s .= "tt<td class='linhacelula'>$data</td>n"; } $s .= "t</tr>n"; } $s .= "</table>"; echo $s; } ?> |
A função geraTabela deve receber dois parâmetros, o resultset de uma consulta no banco de dados e um array com os cabeçalhos da tabela. No exemplo a seguir eu mostrarei como utilizar a função. Para isso imagine que temos uma tabela em nosso banco de dados chamada tb_clientes com os atributos id, nome e cpf.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php /* Conecta com o banco de dados */ mysql_connect('localhost', 'root', 'senha') or die('Erro ao conectar'); mysql_select_db('nomeDoBanco') or die('Erro ao selecionar banco de dados'); /* Executa a query */ $rs = mysql_query("SELECT id, nome, cpf FROM tb_clientes ORDER BY nome"); $headers = array('Código', 'Nome', 'CPF'); //Respeite a ordem do select (id, nome, cpf) /* Chama a função */ geraTabela($rs, $headers); ?> |
Simples né? Para melhorar você pode verificar as classes css que eu declaro dentro da função e criar uma folha de estilos para deixar a tabela melhor esteticamente.
Lembrando que a minha função funciona para aplicações que estejam trabalhando com banco de dados MySQL. Mas você pode facilmente adaptar para outros SGBDs
Espero ajudar.
Abs.
Siga-me no twitter: @rafaelwendel
Eu queria que vc ensina-se como posso criar um banco de dados atraves do php,
queria criar um sistema onde eu iria criar um banco sem precisar ir no mysql … no servidor se vc poder me ajuda agradeço !
Olá Mateus,
Pega todo o código de criação das tabelas e joga dentro de uma variável php e depois executa.
Mas lembrando que os dados de conexao (user, pass e schema) deverão estar configurados manualmente ou dinamicamente.
Abs!
Porra mano, explica direito essa porra, eu ja tentei de tudo
e a pagina só fica em branco
nao exibe tabela nenhuma
Isso deve tá acontecendo devido à sua ignorância, retardo mental e analfabetismo funcional, que lê alguma coisa mas não consegue entender.
muito bom o codigo da tabela, estava procurando exatamente isso. Parabéns!
Essa função funcionou perfeitamente aqui, mas eu não entendi o que acontece na linha 12 ” $s .= “tn”;” e será que há outro tipo de loop com a mesma função do “foreach” na linha 13?
Desde já obrigado!
Olá Nicko,
Na linha 12 eu crio o “tr” da tabela. O barra invertida “t” e barra invertida “n” é para dar um TAB e quebrar a linha.
Abs!
Amigo, seu código foi muito bom, quebrei a cabeça por quatro horas, mas consegui implementar onde eu queria. Obrigado.
Salvou eu pro trabalho de Rolando 🙂
Seu codigo é bacana..só acho que ficaria mais top se vc desse exemplo do css para ser usado com o codigo
Rafa poderia você fazer com PDO? esta dificil para mim:(
Excelente!! Ajudou muito!