segunda-feira, 12 de setembro de 2011

PHP+MySQL: Populando table com informações do banco de dados

Olá,

Nesta dica vou mostrar como montar uma tabela (table) através do PHP com as informações de um banco de dados MySQL.

Considerando que você já saiba codificação .html e entenda um pouco de programação em .php vamos começar!

Primeiro, vou explicar o ambiente.

Meu banco de dados possuem apenas dois campos: nome e cidade. E a partir deles eu vou gerar uma tabela com todos os nomes que já estão cadastrados.

Partindo deste principio, vou considerar que você já tenha sua conexão do PHP + MySQL pronta, caso não tenha, você pode ler este post: Conexão no mysql com php onde explico como efetuar uma conexão e inserir dados no MySQL através do PHP.

Ok, voltando ao post, meus dados já estão cadastrados na tabela o que me resta é apenas executar um select no php e salvar o resultado, pois bem, vamos lá.

Crie um arquivo tabela.php (ou outro nome) você que manda.

$ vi tabela.php

<?php
include("conexao.php");

$query = "select * from usuarios;";

$resultado = mysql_query($query,$conexao) or die(mysql_error());

if(mysql_num_rows($resultado)>0)
{
      print "<table border='1'>";
      print "<tr><td>Nome</td><td>Cidade</td></tr>";
          while ($info = mysql_fetch_array($resultado))
              {
print "<tr><td>$info[nome]</td> <td>$info[cidade]</td></tr>";
}
      print "</table>";
 }
?>

Feito isto, salve e feche o arquivo, vou tentar explicar o que acontece dentro deste código. Na primeira linha, estou incluindo o código de conexão, assim eu consigo chamar a conexão sem nenhum problema, a variável $query contém o comando que será executado no MySQL, ou seja, neste caso precisamos de informações que estão contidas no banco de dados, então é necessário executar o comando select.

Já a variável $resultado ela literalmente recebe o retorno do comando select feito no MySQL, o mysql_query() vai executar a sua query e retornar as informações dentro de um array, ou vetor, como você preferir, caso contrário ele irá mostrar uma mensagem de erro através do mysql_error().

Para saber se meu select obtive o retorno esperado utilizei o mysql_num_rows() se for maior que 0, significa que o select retornou algo, caso contrário pode ter acontecido algum erro ou algo do tipo.

Caso a minha condição (if) seja válida eu crio a tabela <table> e já faço o cabeçalho que eu quero que apareça, Nome e Cidade, agora vou imprimir o resultado em novas linhas e colunas através do while.

Através do comando mysql_fetch_array() eu vou ler o array completo, como você pode observar estou jogando os valores dentro da variável $info, é importante dizer que $info[nome] é o nome do meu campo do banco de dados ou seja [nome] é uma coluna que esta no meu banco de dados.

Após finalizar o while, fechamos a tabela e pronto, sua tabela estará pronta e com todos os dados que foram retornados na consulta do banco de dados.

É importante dizer, apesar que quem ler já vai saber, este arquivo deve estar dentro do seu diretório de publicação web seja no apache com suporte para php em Windows ou Linux.

Abaixo uma imagem de como ficou minha tabela com as informações do banco de dados.


Qualquer dúvida/sugestões/críticas podem utilizar o campo de comentários!

Um abraço!

2 comentários:

  1. Gostaria de saber como posso obter o valor de um id que no meu caso é uma fk nessa tabela tenho 3 colunas relacionada uma usuario relacionada com refeicao outra refeicao relacionada com alimento e as duas resultantes desta relação relacionadas entre si.

    ResponderExcluir
    Respostas
    1. Desculpe, não entendi sua pergunta, você quer obter o ID (FK) através de uma consulta ou o quê?

      Excluir