Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lightfox

Gerar .txt com dados de tabela mysql.

Recommended Posts

Olá, iMasters.

Estou a procura de um codigo que faça gerar um arquivo .TXT de um while em php para DOWNLOAD..

 

Tenho uma página onde lista NOME e EMAIL de pessoas que "querem receber novidades" do site que estao salvos em uma tabela do mysql.

Eu gostaria apenas de gerar um arquivo txt contendo todos nomes e emails, cada valor em uma linha.

 

exemplo:

 

nome1, email1

nome2, email2

nome3, email3

nome4, email4

.....ate acabar

 

E quando clicar em DOWNLOAD, aparece ja a janelinha pra salvar o arquivo no pc, com um nome qualquer .txt

 

Como fazer? Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

		
$query111 = mysql_query("select nome,mail from tabela");
while($data = mysql_fetch_array($query111)) {
$log = "$data[nome] ,$data[mail] \n";
if (!$savelog = fopen('nomedoarquivo.txt', "a")) {exit;}	
if (!fwrite($savelog, $log)) {exit;}fclose($savelog); }}[b][/b]
}

+/- isso, criei correndo, espero que ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

E no final do que o Leonardo postou coloque isto aqui:

 

header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="nomedoarquivo.txt"');
readfile('nomedoarquivo.txt'); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu amigos, por enquanto tá no caminho certo..

 

só estou com 1 problema.. tenho uma pagina que clico em "download" e abre o txt, beleza. mas CADA VEZ QUE ACESSO A PAGINA onde contém o codigo que o Leonardo postou, é gerado um novo looping no arquivo.txt com os mesmo dados, da seguinte forma:

 

1ª vez que abro a pagina, o txt é atualizado:

 

nome1, email1
nome2, email2
nome3, email3
nome4, email4

 

2ª vez que abro a pagina, o txt é atualizado:

nome1, email1
nome2, email2
nome3, email3
nome4, email4
nome1, email1
nome2, email2
nome3, email3
nome4, email4

 

3ª vez que abro a pagina, o txt é atualizado:

nome1, email1
nome2, email2
nome3, email3
nome4, email4
nome1, email1
nome2, email2
nome3, email3
nome4, email4
nome1, email1
nome2, email2
nome3, email3
nome4, email4

 

Ou seja, ele fica repetindo os mesmo valores e INCLUINDO.. Sendo que deveria mostrar apenas os cadastrados no banco, incluindo apenas os que sao novos..

 

Como resolver?

 

Tive a ideia de fazer uma limpa no txt a cada vez que o codigo é lido e apos a limpa e salva-lo, automaticamente ele gera os dados e salva novamente. Seria uma boa ideia? Se sim, como devo fazer? tentei aqui mas sem sucesso

 

Obrigado ate agora!

 

 

@edit ------------

 

Opa, consegui um jeito aqui.

 

<?php $querymail = mysql_query("select nome,email from mailing");
	fopen("mailing.txt", "w+");
	while($data = mysql_fetch_array($querymail)) {
	$log = "$data[nome], $data[email] \n";
	if (!$savelog = fopen('mailing.txt', "a")) 
	{ exit; }        
	if (!fwrite($savelog, $log))
	{ exit; fclose($savelog); }
	}
?>
<a href="mailing.txt">Download</a>

 

Está funcionando do jeito que citei, resetando e gerando os dados novamente.

 

Alguma objeção ai? alguem tem algo melhor?

 

Obrigado aos que ajudaram! Verei o topico, caso tenha novas respostas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.