Exibindo resultados de uma consulta MySQL com PHP

Publicado por EVERTON DA ROSA em 18/08/2009

[ Hits: 18.554 ]

Blog: http://everton3x.github.io

 


Exibindo resultados de uma consulta MySQL com PHP



Neste pequeno passo-a-passo vamos aprender a exibir o resultado de uma consulta a banco de dados MySQL em uma tabela HTML com a utilização do PHP.

Como pré-requisito, é necessário saber como realizar consultas ao MySQL. Para aprender você pode ler este passo-a-passo.

Também vamos precisar de um servidor web com suporte a PHP e de um servidor MySQL. Recomendo o XAMPP.

Primeiramente vamos fazer a conexão com o banco de dados e a consulta ao MySQL.

//Conexão e consulta ao MySQL
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('mysql') or die(mysql_error());
$qry = mysql_query("select Name as Nome, Time_zone_id as Codigo from time_zone_name");

Para fins didáticos, estou usando a tabela time_zone_name do banco de dados MySQL, que vem por padrão no XAMPP, mas você pode utilizar qualquer outra consulta.

Agora vamos precisar saber quais campos foram retornados na consulta. Como o PHP não tem uma função para isso, precisamos usar um laço for() em conjunto com as funções mysql_num_fields() e mysql_field_name().

A função mysql_num_fields() retorna o número de campos de um resultado, enquanto que mysql_field_name retorna o nome de um campo determinado da consulta.

//Pegando os nomes dos campos
$num_fields = mysql_num_fields($qry); //Obtém o número de campos do resultado

for($i = 0; $i < $num_fields; $i++){ //Pega o nome dos campos
    $fields[] = mysql_field_name($qry,$i);
}

O que o código acima faz é pegar cada nome de campo e colocar no array $fields.

Depois, vamos montar o cabeçalho da tabela.

//Montando o cabeçalho da tabela
$table = '';

for($i = 0; $i < $num_fields; $i++){
    $table .= '';
}

Como você pode ver, utilizamos outro laço for() para montar o cabeçalho da tabela. Aqui nós colocamos cada nome de campo dentro de uma tag TH (de cabeçalho de tabela).

Vamos enfim, montar o corpo da tabela, agora combinando um outro laço for() dentro de um while().

//Montando o corpo da tabela
$table .= '';
while($r = mysql_fetch_array($qry)){
    $table .= '';
    for($i = 0;$i < $num_fields; $i++){
        $table .= '';
    }
    $table .= '';
}

O que fazemos nesta parte é pegar cada linha de resultado (como é feito normalmente com while()) e dentro de cada linha pegar cada campo com o for() e colocar na tabela.

Depois é só finalizar a tabela.

//Finalizando a tabela
$table .= '<table border="1"><tbody><tr><th>' . $fields[$i] . '</th></tr></tbody><tbody><tr><td>' . $r[$fields[$i]] . '</td></tr></tbody></table>';

//Imprimindo a tabela
echo $table;

E está pronta a nossa tabela.

Evidentemente que é uma tabela simples, mas você pode personalizá-la à vontade editando o código.

Outras dicas deste autor

Driblando o REGISTER GLOBALS OFF

Geany IDE: mais do que um simples editor de texto

Usando o FireFox para descobrir sites fraudulentos

W3Schools.com: tutoriais, referências e exemplos voltados para a web

Extensões do FireFox para se ter no dia-a-dia

Leitura recomendada

Squid no CentOS - Configuração simples

Bloqueando Meebo no Linux (iptables)

Zotero no OpenOffice.org 3.2 do openSUSE 11.3

Compactadores e descompactadores TAR e GZIP no Linux

Apache autenticando primeira página "/"

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts