IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[CSV] Problème avec un fichier csv


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Par défaut [CSV] Problème avec un fichier csv
    Bonjour à tous, voila je me pose un question, j'ai un fichier excel qu ej transforme en csv pour pouvoir insèrer le tout dans une bdd.

    Tout fonctionne bien,meme l'insertion, le seul hic; c'est qu le fichier csv contient 1211 lignes, et que lorsque j'insère je met un petit compteur pour voir combien d'insertion le script me fait et la surprise, j'en ai 1212.

    Soit une de plus. L'insert en plus à cette tête la .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO bp_article (libelle,reference,contenant,id_bp_produit) VALUES ("","","","6354")
    Le problème viens du faite que quand il me compte mes lignes du fichier csv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $i=0;
    		    // ouverture du fichier en mode lecture (r = ready)
    		    $fichier=fopen("laorav2.csv","r+");
    		    // lecture ligne par ligne tant qu'on ne rencontre pas le code: fin de fichier(feof)  
    		    while(!feof($fichier))
    		        { 
    		            $tableau[$i]=explode(";",fgets($fichier,1024));
    		            $i++;
    		        }
    		    // fermeture du fichier
    		    fclose($fichier);
    		    $nblignes=$i;
    si je fais afficher $nblignes il m'en ressort 1212 alors qu si j'ouvre le csv il y en a 1211.

    Voila si vous savz pourquoi, je suis preneur

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    tu fais ton $nblignes=$i; juste apres avoir incrementé $i ..... resultat $nblignes=$i; prend une ligne de trop !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Par défaut
    tu fais ton $nblignes=$i; juste apres avoir incrementé $i ..... resultat $nblignes=$i; prend une ligne de trop !
    Euh je ne vois pas trop ou j pourrai le faire sinon, car si je le met avant, il reste a zéro!!!

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    je suis d'accord mais tu as demandé "pourquoi ?" , je t'explique !

    maintenant tu peux faire :

    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Moi je pense pas parce que à chaque tour de boucle $i vaut nombres d'éléments insérés - 1 car le tableau démarre à l'indice zéro, et donc quand on finit un tour de boucle après l'incrémentation logiquement $i vaut exactement le nombre d'éléments ajoutés.

  6. #6
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Bonjour,

    Effectivement, ton incrémentation semble correcte.

    N'y a-t-il pas une ligne vide en fin de fichier ?

    Autre chose : tu ouvres en "r+" (lecture - ecriture). Je ne connais pas à fond ce mode d'ouverture, mais ne serait-il pas possible qu'il insère une ligne en fin de fichier pour se préparer à écrire ? Vu que ta fonction n'écrit pas dans le fichier, ne pourrais-tu pas ouvrir en mode "r" et voir ce qu'il se passe ?

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Par défaut
    Je viens d'essayer en mode "r" mais tjs pareil.

    Pour c qui est du fichier csv, c un fichir excel à la base qui a été enregistrer en csv, donc oui dessous il y a ds lignes vides.

    Donc sa peut venir de la, mais comment peut on faire pour que sa ne se produise pas

  8. #8
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Un test de ligne vide...
    Et il y a plein de façons de faire ce test, aussi je te laisse le soin de trouver et choisir.

Discussions similaires

  1. Problème d'import fichier csv avec PostgreSQL
    Par Aztecks dans le forum Ruby
    Réponses: 10
    Dernier message: 10/11/2009, 11h42
  2. [CSV] Affichage d'un fichier csv avec pagination
    Par arnoweb dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2006, 15h13
  3. Réponses: 7
    Dernier message: 29/06/2006, 12h33
  4. [CSV] Problème avec CSV et point virgules
    Par Lotz dans le forum Langage
    Réponses: 6
    Dernier message: 09/03/2006, 15h11
  5. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo