Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Generación de txt con php

Estas en el tema de Generación de txt con php en el foro de PHP en Foros del Web. Buen dia, Mi consulta es la siguiente, estoy generando un archivo txt con registros de desde una db SQL. al generar la consulta, segun el ...
  #1 (permalink)  
Antiguo 02/10/2013, 07:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Generación de txt con php

Buen dia,

Mi consulta es la siguiente, estoy generando un archivo txt con registros de desde una db SQL.

al generar la consulta, segun el número de registros que encuentre, me crea lineas en blanco al iniciar el archivo.

me explico... realizo un select. el array me trae 3 registros, y me lo pinta de la siguiente manera


Linea en blanco
Linea en blanco
Linea en blanco
Registro 1
Registro 2
Registro 3

osea que la información inicia en la linea 4, no en la linea 1 como deberia ser.

el ciclo lo recorro con un do while, e intentado con trim para eliminar lineas en blanco y no ha sido posible eliminarlas.

Por su colaboración gracias.

Tavol.
  #2 (permalink)  
Antiguo 02/10/2013, 07:20
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Generación de txt con php

Pero si se encuentran o no esta ya dentro del bucle, otra cosa es que sean nulas o estén vacías.
  #3 (permalink)  
Antiguo 02/10/2013, 07:38
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Generación de txt con php

Hola, muchas gracias por responder,

no estan vacias ni nulas. genero la consulta en sql y no hay filas en blanco ni registros nulos.... encuentra los mismos 3 registros que me generan el archivo plano. ya intente con un foreach y me pasa exactamente lo mismo. me inician los registros en la linea 4 despues de las 3 lineas en blanco. Si encuentra 16 registros, la información inicia en la linea 17.

consulta generada en sql:

fecha numero fechas IDCISA
----------------------- ------------ ---------- ----------
2013-08-08 00:00:00.000 M1020000xxxx 08/08/2013 900024
2013-08-08 00:00:00.000 M1020000xxxx 08/08/2013 900024
2013-08-08 00:00:00.000 M1040000xxxx 08/08/2013 900023
2013-08-08 00:00:00.000 M4010000xxxx 08/08/2013 900029
2013-08-08 00:00:00.000 M4100000xxxx 08/08/2013 900030
2013-08-08 00:00:00.000 M5100000xxxx 08/08/2013 900014
2013-08-08 00:00:00.000 M5410000xxxx 08/08/2013 900033
2013-08-08 00:00:00.000 M5410000xxxx 08/08/2013 900033

(8 filas afectadas)


archivo plano generado








A 4574 TA 1000 10 10 900024 100 M1020000xxxx 08.08.2013
A 4575 TA 1000 10 10 900024 100 M1020000xxxx 08.08.2013
A 3831 TA 1000 10 10 900023 100 M1040000xxxx 08.08.2013
A 3128 TA 1000 10 10 900029 100 M4010000xxxx 08.08.2013
A 1655 TA 1000 10 10 900030 100 M4100000xxxx 08.08.2013
A 1706 TA 1000 10 10 900014 100 M5100000xxxx 08.08.2013
A 1399 TA 1000 10 10 900033 100 M5410000xxxx 08.08.2013
A 1400 TA 1000 10 10 900033 100 M5410000xxxx 08.08.2013

si cuentas a partir del titulo archivo plano generado son exactamente los mismos 8 espacios correspondientes al numero de registros encontrados. Iniciando la informacion en la linea 9
  #4 (permalink)  
Antiguo 02/10/2013, 08:07
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Generación de txt con php

Bien, esto va a ser más de la forma en que extraes y guardas con PHP que el SQL. Si no te importa pon los párrafos relevantes de tu código php.

Saludos
  #5 (permalink)  
Antiguo 02/10/2013, 09:16
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 6 meses
Puntos: 71
Respuesta: Generación de txt con php

Pon la parte del código donde escribes en el fichero, como lo abres y demás.
  #6 (permalink)  
Antiguo 02/10/2013, 10:03
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Generación de txt con php

esta es la estructura de lo que hay.



$sql2 = "SELECT DISTINCT p1.fecha, p1.numero,CONVERT(varchar(10),p1.fecha,103) as fechas, bo.IDCISA
FROM pedidosp AS p1
INNER JOIN pedidos AS p2 ON p1.numero = p2.numero
INNER JOIN bodegas AS bo ON p1.cc=bo.bodega
WHERE p1.nit='xxxxx'
AND p1.fecha = '$fecha'
ORDER BY p1.numero ASC";

$stmt2 = odbc_exec($conn, $sql2);
$row2 = odbc_fetch_array($stmt2);

$fechatitulo=date("Y-m-d-H-i-s");

$archivo = "file-".$fechatitulo.".txt";

do{

echo $cadena="A\t".substr(trim($row2['numero']),-4)."\tTA\t1000\t10\t10\t".trim($row2['IDCISA'])."\t100\t".trim($row2['numero'])."\t".trim(str_replace("/",".",$row2['fechas']))."\r\n";


}while($row2 = odbc_fetch_array($stmt2));

header("Content-disposition: attachment; filename=$archivo");
header("Content-type: application/octet-stream");
readfile($archivo);
  #7 (permalink)  
Antiguo 02/10/2013, 15:54
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 6 meses
Puntos: 1
De acuerdo Respuesta: Generación de txt con php

me respondo a mi mismo..... los headers eran los culpables de semejantes huecos al generar el archivo

header("Content-disposition: attachment; filename=$archivo");
header("Content-type: application/octet-stream");

simplemente los cambie por la forma básica para generar archivos y solucionado el problema.


$fp = fopen("cheques.txt","a");
fwrite($fp, "$nombre1\t$monto1\t$f1");
fclose($fp);

Etiquetas: php+archivos, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:11.