En fait pour expliquer clairement la situation, j'ai plusieurs sources de données que je reçois. Ces sources sont au format Excel XLS. Il y a donc plusieurs source données qui viennent de différents organismes mais qui contiennent en gros les mêmes données (du genre nom prénom adresse... et d'autres qui sont la ou pas).
Le but de l'application, c'est de créer une base de données de référence avec toutes ces sources.
Il y a donc une première manip à faire (pour moi) : transformer le XLS en CSV... Une fois cette manip faite je rentre le fichier CSV dans mon appli qui rentre ce même fichier dans une base dite "tampon".
Ensuite je compare les champs de toutes les base tampon (image de mes ficher CSV) à ma base de donnée de référence.
Le probleme c'est que j'ai remarqué que si je rentre 2 fois le même fichier Excel, la base de donnée de référence grossie. Alors qu'elle ne devrait pas car si les utilisateurs sont déjà dedans, il n'y en a pas de nouveau, il ne doit pas en ajouter.
Pour voir si mes utilisateurs sont déjà dans la base de reférence, je fais un test sur le NOM+PRENOM+DATE DE NAISSANCE.
Du genre SELECT #champs# FROM table_tampon INNER JOIN table_reference ON (table_tampon.NOM = table_reference.NOM AND table_tampon.PRENOM = table_reference.PRENOM AND table_tampon.DATENAISSANCE = table_reference.DATENAISSANCE
Voila pour la description.
Je me suis donc penché sur le fichier CSV que je reçoit (je l'est ouvert avec un éditeur de texte afin de voir les ";") et j'ai remarquer que la plupart des lignes étaient formée de la façon suivante "chmps1;champs2...\n" SAUF quelques unes ou on peut trouver un ou plusieurs espaces entre la fin du champs et le ";" . J'ai donc utiliser TRIM pour virer les espaces en trop.
Mais lorsque j'ai refais des tests j'ai vu qu'il y avait encore des personnes qui s'ajoute en trop (en quelque sorte des doublons) dans la bas de référence.
J'ai donc affiché ma variable
$valeur (celle dont on parle au dessus) en prennant soit de la souligner... Pour voir si le trait va plus loin que le text. Je me suis apperçu que certaine $valeur sont comme ça :
nom
Je suis aussi allé voir dans phpMyAdmin, et je peux voir que en effet il y a des espaces à la fin des mêmes NOMS que j'avais repéré avec ma méthode de soulignage... Et aussi que ces même noms sont en "doublons" puisqu'ils ont été rentrés au préalable avec un autre fichier CSV, mais sans les espace.
Donc pour résumer mes tests, je rentre un fichier CSV dont je suis sur que mes routine marches. J'ai dont une base de référence avec 5000 entrées. Je rentre un deuxieme fichier CSV (celui sur lequel je travail) il me trouve 100 nouvelle personnes. OK.
Si je rerentre ce même fichier, il me trouve 50 personnes en plus. Et si je le rererentre, il me retrouve ces même 50 personnes....
Voila j'espère que je suis clair... Et désolé pour les longueurs... Si tu as une idée je suis preneur, car je débute, et je commence un peu à galèrer là...
Et sinon quelque chose qui n'a rien a voir : si tu as des infos sur les fonction CSV qui permettraient de ne pas passer par excel pour vider les ";" en trop je suis preneur !
Merci d'avance !