Nueva línea SQL + PHP + CSV
Resuelto
Coutcout86
Mensajes publicados
219
Estado
Miembro
-
Usuario anónimo -
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í:
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.
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
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.
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?
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?
¿Y qué entiendes por '¿Cómo sabes la importación? ' ?
Gracias de antemano.
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
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?