Função php para gerar tabela com registros do banco de dados

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

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. 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 !

    1. 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!

  2. 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!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *