Foros del Web » Programando para Internet » PHP »

crear archivo de texto en php con mysql

Estas en el tema de crear archivo de texto en php con mysql en el foro de PHP en Foros del Web. Hola foro: Por favor ayudenme a resolver esta duda: como hago para insertar un salto de linea apartir de la primera linea en un archivo ...
  #1 (permalink)  
Antiguo 06/07/2006, 19:23
 
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 12 años, 1 mes
Puntos: 0
crear archivo de texto en php con mysql

Hola foro:

Por favor ayudenme a resolver esta duda:
como hago para insertar un salto de linea apartir de la primera linea en un archivo de texto?


He hecho lo siguiente:

$sql='select campo1,campo2 from tabla1 where 1=1 order by campo1';
ejecuto la consulta almacenando el resultado en la variable $resultado
me trae 3 registros esa consulta.

Abro el archivo de texto mediante fopen()
Recorro el array $resultado mediante un for.
y voy almacenando los campos en una variable de esta forma
$variable=$resultado['campo1'].';'.$resultado['campo2'].'\r\n';
Escribo en el archivo de texto lo acumulado en $variable
asi fwrite($archivotexto,$variable)
cuando recorre todo el array cierro el archivo de texto mediante fclose()
hasta aqui todo bien.

El problema que tengo es que al editar el archivo me aparece algo asi:
001;descrip1\r\n002;descrip2\r\n003;descrip3\r\n

Cuando lo que necesito es un archivo de texto de esta forma:

001;descrip1
002;descrip2
003;descrip3

Lo que me hace pensar que el salto de linea no me lo toma como tal sino como dato.
Por favor diganme en que estoy fallando o como hago para obtener el resultado requerido?
  #2 (permalink)  
Antiguo 07/07/2006, 08:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No sé con qué editor estás viendo esos datos .. pero el salto de línea como "código" de control depende del S.O. que lo veas ..

Tienes:
\n -> Unix y muchos S.O. (digamos que es el standard
\r -> Mac
\r\n -> Windows .. (aunque depende con qué editor lo leas así se interpretará .. el wordpad por ejemplo lee lo que sea .. el notepad no ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 07/07/2006, 08:35
 
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 12 años, 1 mes
Puntos: 0
Hola Cluster. Gracias por responder. El SO. que uso es WinXp y el archivo generado lo he leido en notepad y wordpad y en ambos el salto de linea (que se supone debe insertarse al adicionar los caracteres '\r\n' ), se visualiza como parte de los datos y no como el salto de linea que se espera.

Ya he probado insertando el caracter '\n' pero tampoco sirve. Si alguine sabe como solucionar este problema les agradeceré enel alma
  #4 (permalink)  
Antiguo 07/07/2006, 08:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Sólo se me ocurre:

1) Adjunta el código completo que uses .. (por si hay algo por ahí que esté fallando).
2) usa en lugar de comillas simples .. comillas dobles en:

$variable=$resultado['campo1'].";".$resultado['campo2']."\r\n";

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 07/07/2006, 09:02
 
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 12 años, 1 mes
Puntos: 0
Que bien Cluster, de nuevo diste en el blanco. Muchas gracias por tu valiosa colaboración. Eectivamente la solución era cambiar las comillas simples por las dobles.

Ya tengo el resultado que esperaba. Me solucionaste el problema... De nuevo Gracias MIL.
  #6 (permalink)  
Antiguo 07/07/2006, 09:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por sprdtd
Que bien Cluster, de nuevo diste en el blanco. Muchas gracias por tu valiosa colaboración. Eectivamente la solución era cambiar las comillas simples por las dobles.

Ya tengo el resultado que esperaba. Me solucionaste el problema... De nuevo Gracias MIL.
No me dí cuenta antes .. pero la explicación al problema existe (no es por "probar" ..)

En PHP toda cadena que va entre comillas simples no se evalua (no sé en que médida afecta a unos "códigos de control" como esos \n y demás .. pero lo hace) .. es decir .. si tu haces:

echo '$variable';

veras eso mismo

si haces:

echo "$variable";

veras el valor representado de $variable ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 01:53.