lightfox 7 Denunciar post Postado Agosto 17, 2012 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
Leonardo Kentaro 0 Denunciar post Postado Agosto 17, 2012 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
Massaki 47 Denunciar post Postado Agosto 17, 2012 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
lightfox 7 Denunciar post Postado Agosto 18, 2012 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