Pular para o conteúdo

Conexão de tabelas temporárias com PHP + MySQL

Dica publicada em Linux / Introdução
Ariel Galante Dalla Costa arieldll
Hits: 15.068 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

Conexão de tabelas temporárias com PHP + MySQL

Para os desenvolvedores, tabelas temporárias são uma "mão-na-roda" quando precisa-se manipular os mesmos dados e mesma consulta várias vezes, principalmente em relatórios.

Só que há um problema: quando utiliza-se uma conexão orientada a objeto, por exemplo no PHP, que finalize a conexão ao banco de dados, não há como executar várias consultas e retirar os dados.

Por exemplo: criando a tabela de usuários, vamos extrair os dados contidos nela.

Criando e inserindo dados no banco de dados

CREATE TABLE USUARIOS(    CODIGO INTEGER NOT NULL,    NOME VARCHAR(100) NOT NULL,    USUARIO VARCHAR(30) NOT NULL,    SENHA VARCHAR(128) NOT NULL ); INSERT INTO USUARIOS() VALUES(1,'ARIEL','arieldll','anstds1120'); INSERT INTO USUARIOS() VALUES(2,'ALBERTO','aalt','1103858awp'); INSERT INTO USUARIOS() VALUES(3,'THAIS','thbp','widhxx945j'); ---INÍCIO-DO-SQL-TEMPORARIO-PARA-RODAR-NO-BANCO--- DROP TABLE IF EXISTS TMP_TODOS_USUARIOS; CREATE TEMPORARY TABLE TMP_TODOS_USUARIOS AS(    SELECT       *    FROM       USUARIOS ); DROP TABLE IF EXISTS TMP_USUARIOS_2; CREATE TEMPORARY TABLE TMP_USUARIOS_2 AS(    SELECT       *    FROM       TODOS_USUARIOS    WHERE       USUARIO like '%a%'; ); DROP TABLE IF EXISTS TMP_USUARIOS_3; CREATE TEMPORARY TABLE TMP_USUARIOS_3 AS(    SELECT       *    FROM       TODOS_USUARIOS    WHERE       SENHA like '%1%'; ); SELECT    TMP_USUARIOS_3 UNION    TMP_USUARIOS_2; -----FIM-DO-SQL-TEMPORARIO-PARA-RODAR-NO-BANCO----


Função para enviar/separar/receber dados

Bom, caso tenta-se rodar este 'sql' em uma conexão que depois executa o 'mysql_close()', acabará por não manter a tabela temporária, pois ela será excluída automaticamente pelo banco quando a conexão cair.

Mas, para resolver este pequeno problema, desenvolvi uma função simples que ajudará:



Para utilizar a função, basta recebê-la em um variável, como por exemplo:

0){       while($resultado=mysql_fetch_array($resultado_usuarios))){          echo 'Codigo: '.resultado["CODIGO"].'
';          echo 'Usuario: '.resultado["USUARIO"].'
';          echo 'Senha: '.resultado["SENHA"].'
';       }    }


Fechando a conexão e saindo

Agora, para fechar a conexão, basta simplesmente gerar outra conexão ou fechar manualmente cada vez.



Ou:



Para outras bases de dados, pode-se também implementar, como por exemplo no PostGRES.

Caso necessite, pode implementá-la de várias maneiras. Ou, se tiver outra sugestão, estarei feliz por compartilhar ela conosco.

Espero que isso ajude vários.

[]'s Ariel

Exemplo de conexão ao banco de dados orientada a objeto em PHP+MySQL

Ubuntu e Fedora - Mudando o brilho da tela de notebooks Itautec w7635 e w7655

Configuração de Impressoras no Linux

Transformando Ubuntu em UbuntuStudio 7.04

Instalando o emulador de aplicativos CrossOver Standard

Qual distribuição é melhor?

Instalando o Skype no Arch Linux de 64 bits

#1 Comentário enviado por chroda em 26/12/2011 - 17:48h
Nunca apliquei tabela temporário, uso mysql e mongodb nos meus projetos, mas achei interessante, e vou estudar mais a fundo o caso, agradeço o compartilhamento.
#2 Comentário enviado por arieldll em 26/12/2011 - 17:53h
Tabelas temporarias sao muito interessantes para o desenvolvimendo de relatorios, por exemplo. Se voce precisa buscar duas vezes os mesmos dados, basta criar uma tabela temporaria e chama-los uma vez somente.

Contribuir com comentário

Entre na sua conta para comentar.