Ir para conteúdo

POWERED BY:

Arquivado

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

joaogil

gravar muitos dados no txt

Recommended Posts

Eu tenho um script que busca os dados no BD e grava num txt, só que tem uns 2.000 registros e dá pau, não grava tudo !!!!

 

O Código é este:

PHP

[*]

[*]include("../inc/conexao.php");

[*]$query = mysql_query("SELECT * FROM tb_cadastro WHERE data BETWEEN '$data_format_inicial' AND '$data_format_final' ORDER BY data DESC");

[*]mysql_close($link);

[*]$linhas = @mysql_num_rows($query);

[*]if($linhas <> 0)

[*]{

[*] $abre = fopen('dados_entre_datas.txt', 'w');

[*]

[*] while($res = mysql_fetch_array($query))

[*] {

[*] formataDataMostrar($res['data'])// função que formata a data dd/mm/aaaa

[*] global $data_format;

[*]

[*] $dado_01 = "Id.Cad.: \t " .$res['id_cadastro']"\r\n";

[*] $dado_02 = "Data:  \t " .$data_format. "\r\n";

[*] $dado_02 = "Nome:  \t " .$res['nome']"\r\n";

[*] $dado_03 = "Endereço: \t " .$res['endereco']"\r\n";

[*] $dado_04 = "Bairro:  \t " .$res['bairro']"\r\n";

[*] $dado_05 = "Cep: \t " .$res['cep']"\r\n";

[*] $dado_06 = "Cidade:  \t " .$res['cidade']"\r\n";

[*] $dado_07 = "Estado:  \t " .$res['estado']"\r\n";

[*] $dado_08 = "Fone Res.:\t (" .$res['ddd_res']. ") ".$res['fone_res']"\r\n";

[*] $dado_09 = "Fone Rec.:\t (" .$res['ddd_rec']. ") ".$res['fone_rec']"\r\n";

[*] $dado_10 = "Fone Cel.:\t (" .$res['ddd_cel']. ") ".$res['fone_cel']"\r\n";

[*] $dado_11 = "\r\n";

[*]

[*] $dados_total = $dado_01 . $dado_02 . $dado_03 . $dado_04 .$dado_05 . $dado_06 . $dado_07 . $dado_08 . $dado_09 . $dado_10 . $dado_11;

[*] fwrite($abre, $dados_total);

[*] }

[*] fclose($abre);

[*]}

[*]?>

[*]

 

Isso é normal qdo tem muitos dados ???

Alguém poderia me dar uma dica ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho um script que busca os dados no BD e grava num txt, só que tem uns 2.000 registros e dá pau, não grava tudo !!!!

 

O Código é este:

PHP

[*]include("../inc/conexao.php");<br />$query = mysql_query("SELECT * FROM tb_cadastro WHERE data BETWEEN '$data_format_inicial' AND '$data_format_final' ORDER BY data DESC");<br />mysql_close($link);<br />$linhas = @mysql_num_rows($query);<br />if($linhas <> 0)<br />{<br /> $abre = fopen('dados_entre_datas.txt', 'w');<br /> <br /> while($res = mysql_fetch_array($query))<br /> {<br /> formataDataMostrar($res['data'])// função que formata a data dd/mm/aaaa<br /> global $data_format;<br /> <br /> $dado_01 = "Id.Cad.: \t " .$res['id_cadastro']"\r\n";<br /> $dado_02 = "Data:  \t " .$data_format. "\r\n";<br /> $dado_02 = "Nome:  \t " .$res['nome']"\r\n";<br /> $dado_03 = "Endereço: \t " .$res['endereco']"\r\n";<br /> $dado_04 = "Bairro:  \t " .$res['bairro']"\r\n";<br /> $dado_05 = "Cep: \t " .$res['cep']"\r\n";<br /> $dado_06 = "Cidade:  \t " .$res['cidade']"\r\n";<br /> $dado_07 = "Estado:  \t " .$res['estado']"\r\n";<br /> $dado_08 = "Fone Res.:\t (" .$res['ddd_res']. ") ".$res['fone_res']"\r\n";<br /> $dado_09 = "Fone Rec.:\t (" .$res['ddd_rec']. ") ".$res['fone_rec']"\r\n";<br /> $dado_10 = "Fone Cel.:\t (" .$res['ddd_cel']. ") ".$res['fone_cel']"\r\n";<br /> $dado_11 = "\r\n";<br /> <br /> $dados_total = $dado_01 . $dado_02 . $dado_03 . $dado_04 .$dado_05 . $dado_06 . $dado_07 . $dado_08 . $dado_09 . $dado_10 . $dado_11;<br /> fwrite($abre, $dados_total);<br /> } <br /> fclose($abre);<br />}<br />?>

 

Isso é normal qdo tem muitos dados ???

Alguém poderia me dar uma dica ?

<{POST_SNAPBACK}>

o txt é limitado para n sei quantos caracteres...

eu sei que xega uma hora e n da mais para inserir caracteres....

por que n usa banco de dados no lugar de uma txt?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se ele eh limitado pq você naum slava ele em um arquivo .phpQue eu to participando de uma grupo e estaum usando arquivos .php como base de dados.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu fiz um teste como seu script aki no trabalho e funcionou normalmente... ele deve tah dando erro por numero de caracteres mesmo....Tipo pode deixa a linha onde grava dentro do LOOP pois se você tirar ela de lah, ele vai grava somente 1 registro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, acho que é muito grande mesmo !!!!

Eu agora fiz no padrão CSV separado por ponto-e-vírgula ( ; ) e ficou bem menor e não deu mais pau !

 

Assim:

 

PHP

[*]

[*]<?

[*]include("../inc/conexao.php");

[*]$query = mysql_query("SELECT * FROM tb_cadastro ORDER BY data DESC, id_cadastro DESC");

[*]mysql_close($link);

[*]$linhas = mysql_num_rows($query);

[*]if($linhas <> 0)

[*]{

[*] $abre = fopen('dados.txt', 'w');

[*] $dados_campos = "\"Id.Cad.\";\"Data\";\"Nome\";\"Endereço\";\"Bairro\";\"Cep\";\"Cidade\";\"Estado\";\"DDD Res.\";\"Fone Res.\";\"DDD Rec.\";\"Fone Rec.\";\"DDD Cel.\";\"Fone Cel.\"\r\n";

[*] fwrite($abre, $dados_campos);

[*]

[*] while($res = mysql_fetch_array($query))

[*] {

[*] formataDataMostrar($res['data']);

[*] global $data_format;

[*]

[*]

[*] $dados_valores = "\"" .$res['id_cadastro']"\";\"" .$data_format. "\";\"" .$res['nome']"\";\"" .$res['endereco']"\";\"" .$res['bairro']"\";\"" .$res['cep']"\";\"" .$res['cidade']"\";\"" .$res['estado']"\";\"" .$res['ddd_res']"\";\"" .$res['fone_res']"\";\"" .$res['ddd_rec']"\";\"" .$res['fone_rec']"\";\"" .$res['ddd_cel']"\";\"" .$res['fone_cel']"\"\r\n";

[*]

[*] fwrite($abre, $dados_valores);

[*] }

[*]

[*] fclose($abre);

[*]}

[*]?>

[*]

 

Aí grava os nome dos campos na primeira linha e os dados dentro do loop !!

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.