joaogil 1 Denunciar post Postado Julho 20, 2005 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
Fabyo 66 Denunciar post Postado Julho 20, 2005 você esta salvando dentro do loop coloca fora do loop a funçao salvar depois você salva uma vez só Compartilhar este post Link para o post Compartilhar em outros sites
mateushim 0 Denunciar post Postado Julho 20, 2005 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
wolfphw 60 Denunciar post Postado Julho 20, 2005 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
wolfphw 60 Denunciar post Postado Julho 20, 2005 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
joaogil 1 Denunciar post Postado Julho 21, 2005 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