Loop para receber todos os dados de uma fila de um recordset com PHP

Realizamos uma função que recebe uma fila de um conjunto de registros vindo desde um banco de dados e declara variáveis globais com todos os dados da fila.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 08/5/08
Valorize este artigo:
Vamos realizar uma função para receber todos os dados de uma fila de um recordset (conjunto de registros extraídos de um banco de dados, Mysql no caso deste artigo) e declará-los como variáveis globais à página. Tara-se de uma função que realiza um percorrido genérico a todos os dados de qualquer fila e qualquer recordset e vai gerando as variáveis globais para trabalhar com esses dados.

As variáveis globais teriam como nome o mesmo do campo (que é o mesmo nome que a coluna da tabela associada a esse dado) e como valor, o dado que salva essa fila na coluna determinada.

Nota: Este artigo é similar a outro no qual se realiza um percorrido genérico às variáveis recebidas por POST. As explicações desse artigo podem ser bom para compreender melhor este.

Para uma tabela como esta:

id_cliente nome_cliente telefone_cliente
1 Pedro 90 000 00 00
2 Joao 99 888 88 88
3 Maria 999 99 99 99

Se a função recebesse uma fila qualquer, se gerariam variáveis com nomes id_cliente, nome_cliente e telefone_cliente e seus valores seriam os dessa fila em concreto. Para a fila 1, se gerariam as variáveis:

id_cliente=1
nome_cliente="Pedro"
telefone_cliente="90 000 00 00"

O percorrido será genérico, por isso servirá para qualquer tabela, com qualquer número e nome das colunas. As variáveis geradas serão sempre as colunas que existam, com os valores da fila que tiver recebido por parâmetro.

Esta função é muito útil para receber os dados de uma fila e colocá-los em variáveis globais, para logo operar com eles. Como o percorrido é genérico, tanto faz o número, nome e tipo dos campos que se colocarão nas variáveis.

function recebe_fila($fila){
    foreach($fila as $nome_campo => $valor){
       if (gettype($nome_campo)!="integer"){
          $atribuicao = "\$GLOBALS[\"" . $nome_campo . "\"]='" . $valor . "';";
          eval($atribuicao);
          //echo $ atribuicao . "<br>";
       }
    }
}

Um exemplo de uso desta função

Vejamos como utilizar esta função para receber os dados de uma fila. Supõe-se que antes de executar estas linhas deve-se ter aberto uma conexão com o banco de dados. Também se supõe que depois de executar este código, se deveria fechar essa conexão com o banco de dados.

$ssql="select * from cliente where id_cliente=2";
$rs=mysql_query($ssql);
$fila=mysql_fetch_array($rs);
recebe_fila($fila);

Depois destas linhas, terão se criado as variáveis globais com os dados da fila extraída da tabela cliente, uma variável para cada uma das colunas da fila.






Usuários :    login / registro
Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato