Jump to content
Sign in to follow this  
andrepcg

exportar rows para ficheiros txt

Recommended Posts

andrepcg

queria criar um script que fizesse query à BD e que transportasse os resultados obtidos para um novo ficheiro txt, uma row por linha.

vai correr um cronjob ao final de cada dia e perante o dia do ano (03.04.2010) iria criar um ficheiro txt com o nome 03042010.txt e iria inserir os resultados dessa query para o ficheiro.

atenção que cada query retorna muitas rows para um txt.

alguem me consegue ajudar? estou com mais dificuldades na parte de fazer a query e transportar os resultados para o txt. obrigado malta


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
andrepcg

nao, nao tenho. nao sei a melhor maneira de fazer isto... cada query retorna mais de 1000 rows e tenho de as transportar para um txt diferente todos os dias com a data do dia.


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
andrepcg

$today_date = date('d.m.Y');

$queryi = mysql_query("SELECT * FROM blablabla") or die(mysql_error());

$file = "$today_date.txt";

while($row = mysql_fetch_array($queryi))
{
$put = "".$row['blabla']."\n";
file_put_contents($file, $put);


}

o codigo está a criar um ficheiro com apenas a ultima linha do select. se fizer um echo dentro do while, ele escreve todos os reultados da query na pagina mas só o ultimo da query é que é escrito no ficheiro. o que se passa?


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
scorch

Tenta assim:

$today_date = date('d.m.Y');

$queryi = mysql_query("SELECT * FROM blablabla") or die(mysql_error());

$file = "$today_date.txt";

while($row = mysql_fetch_array($queryi))
{
        $put .= "".$row['blabla']."\n";   
       
}
file_put_contents($file, $put);


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
scorch

Faz um echo à variável $put antes da função file_put_contents, mas depois do ciclo.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
andrepcg

fazendo echo a variavel $put, fora do ciclo, retorna o ultimo valor da query, o mesmo que está a ser guardado no ficheiro.

se fizer echo a variavel $put dentro do ciclo, retorna todos os valores da query, como seria de esperar.


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
scorch

Sinceramente não percebo. Mas tenta de outra forma:

$today_date = date('d.m.Y');

$queryi = mysql_query("SELECT * FROM blablabla") or die(mysql_error());

$file = "$today_date.txt";

while($row = mysql_fetch_array($queryi))
{
        $put = $put."".$row['blabla']."\n";  
       
}
file_put_contents($file, $put);


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
andrepcg

guess what? it worked yoda.

obrigado a todos pela vossa colaboração

agora para ficar a perceber bem o que aconteceu, porque é que definir o $put fora do ciclo fez isto resultar?


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
softklin

Tem a ver com o chamado escopo de variáveis. Uma variável definida num ciclo apenas funciona dentro dele, nalgumas linguagens. Surpreendentemente, no PHP também funciona nessa forma, fiquei a descobrir isso neste tópico. Fico espantado com isso devido à ausência de declaração de variáveis.

O primeiro código que tinhas, andrecpg, só falhou porque a função file_put_contents apaga todo o conteudo do fichiero antes de o escrever. Se usasses, por exemplo, fwrite, ou o file_put_contents com a opção FILE_APPEND (ver manual), já funcionaria.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
scorch

softclean, isso funcionaria, mas o script ficaria mais lento de estar sempre a abrir conexão, editar o ficheiro, e fechar a conexão, quando tudo isso poderia ser feito de uma vez só. ;)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.