Retour chariot SQL + PHP + CSV

Résolu/Fermé
Coutcout86 Messages postés 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016 - 13 mars 2015 à 10:25
 Utilisateur anonyme - 13 mars 2015 à 15:42
Bonjour,

Je m'arrache les cheveux à cause d'un problème de retour chariot. Je souhaite exporter des données depuis une base de données SQL vers un fichier csv mais dans ma base de données j'ai des champs TEXT. Et dans ces champs TEXT j'ai des retours chariots. Vous allez me dire qu'il faut que je fasse un str_replace pour enlever les BR ou les \r\n mais le problème c'est que dans ma base de données, mon champs TEXT est insérer comme ceci :

Il s'agit de 2 EI requalifiées en sociétés de fait.
Le salarié est le fils de l'un des 2 dirigeants, ne restera pas en cas de vente.


Donc au bout de la première ligne je n'est ni de <br/> ni de \n donc lorsque j'exporte cela en CSV ça me créer une nouvelle ligne a chaque retour chariot.

Comment pourrait-je faire pour résoudre cette problèmatique ? Est-ce que quelqu'un aurait une idée ?

Merci d'avance.

2 réponses

Utilisateur anonyme
13 mars 2015 à 11:06
Bonjour

Un champ CSV peut très bien contenir un changement de ligne, ça ne pose aucun problème si on respecte les conventions du CSV qui disent entres autres que si un champ contient certains caractères spéciaux (dont le passage à la ligne) il faut l'entourer de double quotes.
Comment fais-tu l'exportation ?
Comment sais-tu l'importation ?
Si tu as un problème, c'est qu'au moins une de ces deux étapes n'est pas vraiment faite en respectant le format CSV.
Il ne faut pas croire que le CSV c'est seulement des champs séparés par des virgules, le format CSV définit quelques autres règles sans lesquelles il ne fonctionne pas.
0
Coutcout86 Messages postés 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016
13 mars 2015 à 11:12
Je fais l'exportation en PHP de cette maniére dans mon code:

 echo  monChamps.";".monDeuxiemeChamps.";" etc..


Et qu'entends tu par 'Comment sais-tu l'importation ? ' ?

Merci d'avance.
0
Faute de frappe, je voulais écrire "comment fais-tu l'importation ?"

Ceci dit, ça ne marche pas parce que ce que tu fais n'EST PAS du CSV. Imagine qu'il y ait un point-virgule dans tan champ, qu'est-ce qui va se passer à la relecture ?
Pour faire du CSV, il y a des fonctions toutes faites en PHP :
fputcsv et fgetcsv
0
Coutcout86 Messages postés 195 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 26 mai 2016
13 mars 2015 à 14:23
Il se passe que ça écris dans une nouvelle cellule malheureusement...

J'importe via une requête SQL qui est ensuite stockée dans un tableau PHP.
Effectivement je fais pas de CSV à 100 % en voyant ces fonctions.

Par contre avec ces fonctions cela pourrait résoudre mon problème ?
0
Utilisateur anonyme
13 mars 2015 à 15:42
Effectivement je fais pas de CSV à 100 %
Disons plutôt que tu ne fais pas de CSV du tout.

Oui, ces fonctions permettent de faire vraiment du CSV. Il m'arrive de les utiliser, je n'ai jamais aucun problème.

Tu as dit précédemment que tu faisais l'exportation grâce à des "echo", mais echo n'écrit pas dans un fichier en principe. Vu les questions que tu poses, je doute un peu que tu rediriges la sortie standard. Alors, rediriges-tu vraiment la sortie standard, ou sinon comment fais-tu réellement pour exporter ?
De même : J'importe via une requête SQL , ça ne veut pas dire grand chose, une requête SQL n'a jamais été faite pour importer des données d'un fichier CSV. Alors comment fais-tu vraiment ?
0

Discussions similaires