Nueva línea SQL + PHP + CSV

Resuelto
Coutcout86 Mensajes publicados 219 Estado Miembro -  
 Usuario anónimo -
Hola, Me estoy volviendo loco por un problema de salto de línea. Quiero exportar datos desde una base de datos SQL a un archivo CSV, pero en mi base de datos tengo campos TEXT. Y en esos campos TEXT hay saltos de línea. Me dirás que haga un str_replace para quitar las BR o los \r\n, pero el problema es que en mi base de datos mi campo TEXT se inserta así:

Se trata de 2 EI requalificadas como sociedades de hecho.
El trabajador es el hijo de uno de los 2 dirigentes, no permanecerá en caso de venta.


Así que al final de la primera línea no tengo ni
ni \n, por lo que cuando exporto eso a CSV me crea una nueva línea en cada salto de línea.

¿Cómo podría hacer para resolver esta problemática? ¿Alguien tendría alguna idea?

Gracias de antemano.

2 respuestas

Usuario anónimo
 
Un campo CSV puede contener un salto de línea, no hay problema siempre que se respeten las convenciones del CSV que dicen, entre otras cosas, que si un campo contiene ciertos caracteres especiales (incluido el salto de línea) debe ir entre comillas dobles. ¿Cómo haces la exportación? ¿Cómo haces la importación? Si tienes un problema, es porque al menos una de estas dos etapas no se está haciendo realmente respetando el formato CSV. No hay que creer que el CSV es solo campos separados por comas; el formato CSV define algunas reglas más sin las cuales no funciona.
0
Coutcout86 Mensajes publicados 219 Estado Miembro
 
Hago la exportación en PHP de esta manera en mi código:

 echo miCampo.";".miSegundoCampo.";" etc..


¿Y qué entiendes por '¿Cómo sabes la importación? ' ?

Gracias de antemano.
0
Usuario anónimo
 
Por error de escritura, quería escribir "¿cómo haces la importación?"

Dicho esto, no funciona porque lo que haces NO es CSV. Imagina que haya un punto y coma en cada campo, ¿qué pasará al leerlo de nuevo?
Para hacer CSV, hay funciones ya hechas en PHP:
fputcsv y fgetcsv
0
Coutcout86 Mensajes publicados 219 Estado Miembro
 
Resulta que eso se escribe en una nueva celda, desafortunadamente...

Importo mediante una consulta SQL que luego se almacena en un array PHP.
Efectivamente, no hago CSV al 100 % al ver estas funciones.

¿Podrían estas funciones resolver mi problema?
0
Usuario anónimo
 
De hecho no hago CSV al 100 %
Más bien digamos que no haces CSV en absoluto.

Sí, estas funciones permiten hacer realmente CSV. Me ocurre utilizarlas, nunca tengo ningún problema.

Dijiste antes que hacías la exportación gracias a unos "echo", pero echo en principio no escribe en un archivo. Dadas las preguntas que haces, dudo un poco que redirijas la salida estándar. Entonces, ¿rediriges realmente la salida estándar, o si no, cómo haces realmente la exportación?
Del mismo modo: Importo mediante una consulta SQL, eso no significa mucho, una consulta SQL nunca se ha hecho para importar datos desde un archivo CSV. Entonces ¿cómo haces realmente?
0