andrelccamargo Postado Fevereiro 4, 2009 Denunciar Share Postado Fevereiro 4, 2009 Bom dia a todos.Sou iniciante em PHP e estou com um problema na empresa onde trabalho.Tenho um programa em PHP que executa uma consulta em um banco de dados SQL SERVER e gera uma arquivo com os parametros que foram colocados.O arquivo funciona perfeitamente. Copia os dados novos, gera o arquivo, belezinha!!!O parametro inicial para a pesquiza é a data do dia. Então se teve alteração na tabela ele vai e gera, se não teve ele não gera.So que agora surgiu a necessidade de se gerar um arquivo mesmo quando não a alteração na tabela.Por exemplo se tiver alteração o programa realiza o scripty e traz os dados, agora se não tiver eu preciso que seja gerado um arquivo zerado.Não tenho nem ideia de como posso realizar isso, alguém poderia me dar uma luz?Vou postar o codigo do programa abaixo para melhor me entenderem:<?php/**<td>'.money_format(str_pad(str_replace(".",",",$row['7']), 14, "0", STR_PAD_LEFT),money_format('%=0(#10.2n', $row['7']).'</td>*/// <td>'.str_pad(str_replace(".",",",$row['7']), 14, "0", STR_PAD_LEFT).'</td>// Realizando a conexao$hoje = date('Y-m-d');setlocale(LC_MONETARY, 'de_DE');$condb = mssql_connect('192.000.0.00','user','senha');if($condb) {if(!mssql_select_db('BANCO_DADOS',$condb)) {echo 'Erro ao escolher o banco de dados';}} else {echo 'Erro ao conectar o banco';}$sql = "SELECT 'NF Saida' AS 'Tipo',T1.Serial AS 'Nº da nf',T1.DocDate AS 'Data de lançamento',case//AQUI TEM UM SELECT GIGANTE POR ISSO SO POSTEI O INICIO!!!$result = mssql_query($sql,$condb);while($row = mssql_fetch_array($result)) {$arquivo = "C:NOMEARQUIVO";//TENTA ABRIR O ARQUIVO TXTif (!$abrir = fopen($arquivo, "a")) {echo "Erro abrindo arquivo ($arquivo)";exit;}$campo1= str_pad($row['Tipo'],18, ' ');$campo2= str_pad(number_format($row['1'], 0, '', ''),18, "0",STR_PAD_LEFT);$campo3= str_pad(date('dmY', strtotime($row['2'])),18, "0",STR_PAD_LEFT);$campo4= str_pad(number_format($row['3'], 0, '', ''),18, "0",STR_PAD_LEFT);$campo5= str_pad(number_format($row['4'], 0, '', ''),18, "0",STR_PAD_LEFT);$campo6= str_pad(number_format($row['5'], 0, '', ''),18, "0",STR_PAD_LEFT);$campo7= str_pad(number_format($row['6'], 0, '', ''),18, "0",STR_PAD_LEFT);$campo8= str_pad(number_format($row['7'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo9= str_pad(date('dmY', strtotime($row['8'])),18, "0",STR_PAD_LEFT);$campo10= str_pad(number_format($row['9'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo11= str_pad(number_format($row['10'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo12= str_pad(number_format($row['11'], 0, '', ''),18, "0",STR_PAD_LEFT);$campo13= str_pad(number_format($row['12'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo14= str_pad(number_format($row['13'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo15= str_pad(number_format($row['14'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo16= str_pad(number_format($row['15'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo17= str_pad(number_format($row['16'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo18= str_pad(number_format($row['17'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo19= str_pad(number_format($row['18'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo20= str_pad(number_format($row['19'], 2, '', ''),18, "0",STR_PAD_LEFT);$campo21= str_pad(number_format($row['20'], 0, '', ''),18, "0",STR_PAD_LEFT);$campo22= substr(str_pad($row['Marca'],18, ' '),0,18);$campo23= str_pad($row['Unid'],18, ' ');$conteudo = "$campo1$campo2$campo3$campo4$campo5$campo6$campo7$campo8$campo9$campo10$campo11$campo12$campo13$campo14$campo15$campo16$campo17$campo18$campo19$campo20$campo21$campo22$campo23";//TENTA ABRIR O ARQUIVO TXTif (!$abrir = fopen($arquivo, "a")) {echo "Erro abrindo arquivo ($arquivo)";exit;}//ESCREVE NO ARQUIVO TXTif (!fwrite($abrir, $conteudo)) {print "Erro escrevendo no arquivo ($arquivo)";exit;}}?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Wanderson Camargo Postado Fevereiro 4, 2009 Denunciar Share Postado Fevereiro 4, 2009 Opa!Desculpa... Que POGramação! [oO]Se tu quer sempre criar o arquivo, crie ele sempre! No começo do script já manda ele criar o arquivo e deu. Simples. Depois ele se vira se tem que gravar mais coisas ou não. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 andrelccamargo Postado Fevereiro 4, 2009 Autor Denunciar Share Postado Fevereiro 4, 2009 Opa!Desculpa... Que POGramação! [oO]Se tu quer sempre criar o arquivo, crie ele sempre! No começo do script já manda ele criar o arquivo e deu. Simples. Depois ele se vira se tem que gravar mais coisas ou não.Opa Wanderson tudo bem?Então mas como faço pra ele gerar isso???Esse programa não foi feito por mim, eu so fiz a parte do SQL, estou iniciando no PHP e não tenho a menor ideia de como fazer isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Fevereiro 4, 2009 Denunciar Share Postado Fevereiro 4, 2009 i aew andrelccamargo, saca só:essa linha:if (!$abrir = fopen($arquivo, "a")) { ele tenta abrir o arquivo com nome especificado, caso o arquivo não exista ele vai criar um automaticamente, a letra a do segundo argumento significa que ele vai abrir o arquivo somente para escrita e vai começar a escrever na ultima linha do arquivo(caso já exista um). nessa linha: if (!fwrite($abrir, $conteudo)) {se ele conseguiu abrir/criar o arquivo ele escreve o conteudo da variavel $conteudo.tenta aprimorar esse codigo colocando tambem a função fclose()para garantir a integridade do arquivo. E aproveita para olhar a sintaxe das funçoes fopen e fwrite, espero que ajude, abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
andrelccamargo
Bom dia a todos.
Sou iniciante em PHP e estou com um problema na empresa onde trabalho.
Tenho um programa em PHP que executa uma consulta em um banco de dados SQL SERVER e gera uma arquivo com os parametros que foram colocados.
O arquivo funciona perfeitamente. Copia os dados novos, gera o arquivo, belezinha!!!
O parametro inicial para a pesquiza é a data do dia. Então se teve alteração na tabela ele vai e gera, se não teve ele não gera.
So que agora surgiu a necessidade de se gerar um arquivo mesmo quando não a alteração na tabela.
Por exemplo se tiver alteração o programa realiza o scripty e traz os dados, agora se não tiver eu preciso que seja gerado um arquivo zerado.
Não tenho nem ideia de como posso realizar isso, alguém poderia me dar uma luz?
Vou postar o codigo do programa abaixo para melhor me entenderem:
<?php
/**
<td>'.money_format(str_pad(str_replace(".",",",$row['7']), 14, "0", STR_PAD_LEFT),money_format('%=0(#10.2n', $row['7']).'</td>
*/
// <td>'.str_pad(str_replace(".",",",$row['7']), 14, "0", STR_PAD_LEFT).'</td>
// Realizando a conexao
$hoje = date('Y-m-d');
setlocale(LC_MONETARY, 'de_DE');
$condb = mssql_connect('192.000.0.00','user','senha');
if($condb) {
if(!mssql_select_db('BANCO_DADOS',$condb)) {
echo 'Erro ao escolher o banco de dados';
}
} else {
echo 'Erro ao conectar o banco';
}
$sql = "SELECT 'NF Saida' AS 'Tipo',
T1.Serial AS 'Nº da nf',
T1.DocDate AS 'Data de lançamento',
case
//AQUI TEM UM SELECT GIGANTE POR ISSO SO POSTEI O INICIO!!!
$result = mssql_query($sql,$condb);
while($row = mssql_fetch_array($result)) {
$arquivo = "C:NOMEARQUIVO";
//TENTA ABRIR O ARQUIVO TXT
if (!$abrir = fopen($arquivo, "a")) {
echo "Erro abrindo arquivo ($arquivo)";
exit;
}
$campo1= str_pad($row['Tipo'],18, ' ');
$campo2= str_pad(number_format($row['1'], 0, '', ''),18, "0",STR_PAD_LEFT);
$campo3= str_pad(date('dmY', strtotime($row['2'])),18, "0",STR_PAD_LEFT);
$campo4= str_pad(number_format($row['3'], 0, '', ''),18, "0",STR_PAD_LEFT);
$campo5= str_pad(number_format($row['4'], 0, '', ''),18, "0",STR_PAD_LEFT);
$campo6= str_pad(number_format($row['5'], 0, '', ''),18, "0",STR_PAD_LEFT);
$campo7= str_pad(number_format($row['6'], 0, '', ''),18, "0",STR_PAD_LEFT);
$campo8= str_pad(number_format($row['7'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo9= str_pad(date('dmY', strtotime($row['8'])),18, "0",STR_PAD_LEFT);
$campo10= str_pad(number_format($row['9'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo11= str_pad(number_format($row['10'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo12= str_pad(number_format($row['11'], 0, '', ''),18, "0",STR_PAD_LEFT);
$campo13= str_pad(number_format($row['12'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo14= str_pad(number_format($row['13'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo15= str_pad(number_format($row['14'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo16= str_pad(number_format($row['15'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo17= str_pad(number_format($row['16'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo18= str_pad(number_format($row['17'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo19= str_pad(number_format($row['18'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo20= str_pad(number_format($row['19'], 2, '', ''),18, "0",STR_PAD_LEFT);
$campo21= str_pad(number_format($row['20'], 0, '', ''),18, "0",STR_PAD_LEFT);
$campo22= substr(str_pad($row['Marca'],18, ' '),0,18);
$campo23= str_pad($row['Unid'],18, ' ');
$conteudo = "$campo1$campo2$campo3$campo4$campo5$campo6$campo7$campo8$campo9$campo10$campo11$campo12$campo13$campo14$campo15$campo16$campo17$campo18$campo19$campo20$campo21$campo22$campo23";
//TENTA ABRIR O ARQUIVO TXT
if (!$abrir = fopen($arquivo, "a")) {
echo "Erro abrindo arquivo ($arquivo)";
exit;
}
//ESCREVE NO ARQUIVO TXT
if (!fwrite($abrir, $conteudo)) {
print "Erro escrevendo no arquivo ($arquivo)";
exit;
}
}
?>
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.