Exibindo resultados de uma consulta MySQL com PHP

Publicado por EVERTON DA ROSA em 18/08/2009

[ Hits: 18.417 ]

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

Geany IDE: mais do que um simples editor de texto

Utilizando argumentos padrão em funções no PHP

Usando o FireFox para descobrir sites fraudulentos

Orion - Extração e conversão de dados de arquivos texto e CSV

Crie sua própria classe Javascript

Leitura recomendada

Expresso Livre, uma alternativa real ao Notes e Exchange

Qual distribuição é melhor?

Atualizando as bibliotecas fo Basic Linux

Alterando o tema do KDM (KDM Theme Manager)

Múltiplas instâncias do Pentaho (BI) em base dados hsql no mesmo computador

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário