DevSecOps

30 ago, 2004

Leitura de tabela MySQL dinâmica

Publicidade

Esse artigo tem o objetivo de desenvolver uma melhor
lógica em um programador PHP e mostrar-lhe que às
vezes as coisas são mais dinâmicas do que parecem.
Nas demonstrações abaixo mostrarei como ler uma
tabela em MySQL sem precisar saber nomes de campos, sendo somente
necessário a tabela e o banco. Criaremos uma tabela bem
básica, somente como exemplo:

CREATE TABLE teste (
id int(6) unsigned NOT NULL auto_increment,
nome varchar(200) NULL,
email varchar(100) NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

Pronto. Nossa pequena tabela está criada.
Agora, iremos usar um script PHP para exibir informações
sobre a mesma.

   $conn = mysql_connect("localhost","usuario","senha")
or die("erro ao conectar!");
   $db = mysql_select_db("exemplos");
   $query = mysql_query("Select * from teste")
or die("erro na query");

   $nome_campo
= array();

   $i = 0;
   while ($i < mysql_num_fields($query)) {
     $campo = mysql_fetch_field($query,$i);
     if (!$campo) { echo "Não
existem informações para este campo!"; }

    
//mostrando dados do campo

     echo "Dados do campo ".$campo->name."

           Blob:
".$campo->blob."

           Tamanho
máximo: ".$campo->max_length."

           Primeira
chave: ".$campo->primary_key."

           Unica
chave: ".$campo->unique_key."

           Multiplas
chaves: ".$campo->multiple_key."

           Nulo não
permitido: ".$campo->not_null."

           Numérico:
".$campo->numeric."

           Tipo:
".$campo->type."

           Preenchido
com zero: ".$campo->zerofill."

           Unsigned:
".$campo->unsigned."
";

      $nome_campo[$i] = $campo->name;

      $i++;
   }

?>

No script acima foi desenvolvido um meio dinâmico
aonde você, apenas trocando o nome da tabela do seu banco
de dados, estará vendo todos os campos e suas respectivas
informações.

Continuando o script logo abaixo, estaremos listando
os dados dessa tabela escolhida, aonde você poderá
utilizar esse script com qualquer tabela. Se você desenvolver
um script baseado nesse, mas com edição, adição
e exclusão de dados, tornaria facíl e dinâmico
desenvolver um site aonde todas as vezes têm que se desenvolver
novos scripts para trabalhar com os dados de um banco.

   // continuando o codigo acima, aonde nos armazenamos
em uma variaval (nome_campo) os nomes dos campos para podermos
mostrar os dados

   while ($info = mysql_fetch_array($query)) {
     for ($x=0;$x {
        echo $nome_campo[$x]."
-> ".$info[$nome_campo[$x]]."
";
     }
   }

?>

Pronto. Um exemplo bem básico mas de onde
podemos desenvolver muitas novas idéias. Valeu e espero
que tenham gostado! Dúvidas? brunofuster@msn.com.