Foros del Web » Programando para Internet » PHP »

Escribir un documento, según la cantidad de pedidos!

Estas en el tema de Escribir un documento, según la cantidad de pedidos! en el foro de PHP en Foros del Web. Buen Dia a toda la comunidad Este es mi primer tema, espero su colaboración Les comento, necesito crear y escribir un documento (.txt, con php ...
  #1 (permalink)  
Antiguo 17/09/2011, 09:26
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 7 meses
Puntos: 1
Pregunta Escribir un documento, según la cantidad de pedidos!

Buen Dia a toda la comunidad

Este es mi primer tema, espero su colaboración

Les comento, necesito crear y escribir un documento (.txt, con php) a partir de datos que son ingresados por el usuario e información devuelta por mi base datos, el contenido del archivo dependerá de "n " cantidad de pedidos que indique el usuario

He intentado crear un bucle for que se repetira tantas vez como numero de pedidos,.... el problema es que la hora de escribir el texto en el archivo creado este solo escribe la ultima iteración de dicho for. No se sí por ahi este bien encaminado.

la raiz del problema esta en el siguiente codigo:
Código PHP:
<?php 
header
("Content-Type: text/plain utf-8"); 

// $nombre_del_archivo = $_POST['nombre_del_archivo'];
// $cantidad = $_POST['cantidad'];

$nombre_del_archivo archivo// esto debe variar
$cantidad=3;  // esto debe variar

    
for ($m=0$m<$cantidad$m++){
    
    
$texto_de_pedido="
    Nombre ' ARTICULO_"
.$m." '
    TIPO :cualquier info
    DATA PROPIETARIO ' Variable que asiga el nombre del propietario'
    'Extension' 'cualquier info'
    'Codigo'  ' code: ABD347"
.$m." '
    
    'Final del contenido del ARTICULO_"
.$m." ' 
    " 
;
    echo 
$texto_de_pedido ;

    }
        
$texto_total $texto_de_pedido;

        
$ruta_archivo "C:/ms4w/Apache/htdocs/".$nombre_del_archivo.".txt";
        
        
$archivo fopen($ruta_archivo"w+");
        
fwrite($archivo,  $texto_total );        
        
?>
para este caso el archivo se escribe "solo"con información del ARTICULO_2 y la idea es que este compuesto de información del ARTICULO_0, ARTICULO_1, ARTICULO_2, ... ARTICULO_n

agradecería que alguien me de una luz acerca de esto
  #2 (permalink)  
Antiguo 17/09/2011, 10:42
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escribir un documento, según la cantidad de pedidos!

Tendrás que cambiar el modo de apertura de fopen(), con 'w+' estás vaciando el archivo una y otra vez.

http://es2.php.net/manual/es/function.fopen.php

Un saludo!
  #3 (permalink)  
Antiguo 17/09/2011, 11:38
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 7 meses
Puntos: 1
Información Respuesta: Escribir un documento, según la cantidad de pedidos!

Cita:
Iniciado por 3nr1c Ver Mensaje
Tendrás que cambiar el modo de apertura de fopen(), con 'w+' estás vaciando el archivo una y otra vez.

[url]http://es2.php.net/manual/es/function.fopen.php[/url]

Un saludo!
Gracias 3nr1c por responder, pues la verdad si se vacía una y otra vez, no obstante el mode 'w+'no seria el problema (en realidad no depende de ningún de los modos posibles de fopen()), si fuera el caso funcionaria para la primera ejecución y no es así.

Mi objetivo es que se escriba la información por cada pedido en principio, lo de sobrescribir o crear nuevos archivos lo controlaría después, pero por ahora necesito escribir bien en el archivo en la la primera ejecución.

Alguna otra idea compañeros
  #4 (permalink)  
Antiguo 18/09/2011, 03:40
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escribir un documento, según la cantidad de pedidos!

Pues usa el modo 'a+', que crea el archivo si no existe, pero no lo vacía si ya existe
  #5 (permalink)  
Antiguo 18/09/2011, 16:56
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Escribir un documento, según la cantidad de pedidos!

Cita:
Iniciado por 3nr1c Ver Mensaje
Pues usa el modo 'a+', que crea el archivo si no existe, pero no lo vacía si ya existe
La verdad non funciona con +a
si lo ejecuto una vez se escribe esto en el archivo:

Código:
	Nombre ' ARTICULO_2 '
	TIPO :cualquier info
	DATA PROPIETARIO ' Variable que asiga el nombre del propietario'
	'Extension' 'cualquier info'
	'Codigo'  ' code: ABD3472 '
	
	'Final del contenido del ARTICULO_2 '
y tienes razon no borra para las proximas ejecuciones sino que agrega esa misma información del ARTICULO_2.
Pero lo que yo necesito es que escriba esto en el archivo en principio :

Código:
	Nombre ' ARTICULO_0 '
	TIPO :cualquier info
	DATA PROPIETARIO ' Variable que asiga el nombre del propietario'
	'Extension' 'cualquier info'
	'Codigo'  ' code: ABD3470 '
	
	'Final del contenido del ARTICULO_0 ' 
	
	Nombre ' ARTICULO_1 '
	TIPO :cualquier info
	DATA PROPIETARIO ' Variable que asiga el nombre del propietario'
	'Extension' 'cualquier info'
	'Codigo'  ' code: ABD3471 '
	
	'Final del contenido del ARTICULO_1 ' 
	
	Nombre ' ARTICULO_2 '
	TIPO :cualquier info
	DATA PROPIETARIO ' Variable que asiga el nombre del propietario'
	'Extension' 'cualquier info'
	'Codigo'  ' code: ABD3472 '
	
	'Final del contenido del ARTICULO_2 '
No logro sacar provecho de la iteración.... no si el bucle for es la solución. Ahora si entiendes
ahora si entiendes
  #6 (permalink)  
Antiguo 18/09/2011, 17:23
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Escribir un documento, según la cantidad de pedidos!

Cada que recorre el bucle, $texto_de_pedido es reemplazado, lo que necesitas es hacer una asignación concatenada

Mira la diferencia:

Código PHP:
Ver original
  1. $str = array('este', 'es', 'un', 'ejemplo');
  2.  
  3. for($i = 0; $i < count($str); $i++) {
  4.     $final = $str[$i]; // Cada que recorre el bucle, esta variable es reemplazada, terminando con ejemplo
  5. }
  6.  
  7. for($i = 0; $i < count($str); $i++) {
  8.     $final2 .= $str[$i]; // Cada que recorre el bucle, la palabra se concatena a la variable, nunca se reemplaza
  9. }
  10.  
  11. echo $final; // Var reemplazada
  12. echo '<br />';
  13. echo $final2; // Var que fue concatenada
  14. for
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #7 (permalink)  
Antiguo 18/09/2011, 19:56
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 7 meses
Puntos: 1
De acuerdo Respuesta: Escribir un documento, según la cantidad de pedidos!

Cita:
Iniciado por Sourcegeek Ver Mensaje
Cada que recorre el bucle, $texto_de_pedido es reemplazado, lo que necesitas es hacer una asignación concatenada

Gracias 3nr1c y Sourcegeek por su interes!
Sourcegeek has Resuleto mi duda, con la asignación concatenada... estaba a un ".", lo mas importante del foro es compartir conocimiento Sin duda, sinceramente se valora cuando se es novato!!

Etiquetas: cantidad, documento, variables, usuarios
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 12:45.