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

PHP & Base de données Discussion :

Parcourir un fichier .txt en php [MySQL]


Sujet :

PHP & Base de données

  1. #61
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pourquoi t'a deux boucles ... tu fais des explode sur ; mais le fgetcsv sur ,, le require_once dans la boucle, le $i qui sert a rien, les paramètres de requete même pas échappés, c'est franchement du grand nawak ...

  2. #62
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Comme tu as fait avec les séparateurs utilisés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //$date2=explode("/",$donnee[2]);
    //$donnee[2]=$date2[2].'-'.$date2[1].'-'.$date2[0];
    Ou en plus élégant celle d'Ericd69, je connaissais pas avec les {}
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #63
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    disons que tu peux mettre un seul indice directement, php est permissif, mais si tu veux en mettre plusieurs c'est une écriture possible pour ne pas écrire de multiple "." partout... ça ne marche que pour des variables avec ou sans indices pas pour des calculs...

    le problème c'est qu'amandine tripatouille son code plutot que de copié/collé le code corrigé...

    du coup ça induit d'autres problèmes...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  4. #64
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Fench Voir le message
    Comme tu as fait avec les séparateurs utilisés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //$date2=explode("/",$donnee[2]);
    //$donnee[2]=$date2[2].'-'.$date2[1].'-'.$date2[0];
    Ou en plus élégant celle d'Ericd69, je connaissais pas avec les {}
    Non c'est de la bidouille, pour les date c'est

    strptime
    date_parse_from_format
    datefmt_parse

  5. #65
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 50
    Points : 10
    Points
    10
    Par défaut
    Oui j'ai vu Eric mais sa ne fonctionne pas. Sa me met tout dans la variable $nom!! Alors je cherche alors arreté de dire que je bidouille.

  6. #66
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par amandev Voir le message
    Oui j'ai vu Eric mais sa ne fonctionne pas. Sa me met tout dans la variable $nom!! Alors je cherche alors arreté de dire que je bidouille.
    Est ce que tu comprends ligne par ligne ce que ton code fait ?

  7. #67
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 50
    Points : 10
    Points
    10
    Par défaut
    Oui je le comprend car c'est moi qui les fait.

  8. #68
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par amandev Voir le message
    Oui je le comprend car c'est moi qui les fait.
    Ok alors explique moi pourquoi tu fais un fgetcsv avec le séparateur , alors que ton CSV est séparé par des ; ?

  9. #69
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Moi, je trouve pas forcement que c de la bidouille ... et puis ici c pas date que nous utilisons donc pas de maniement de format. Mais je respecte ...

    Par contre $i c pour l'affichage du n° de ligne, les deux boucles c aussi en fonction du format Csv utilisé ...

    Pour l'échappement, c qd même du à l'utilisation de mysql_query ... ya du progrès maintenant sur d'autre fonctions.

    Pour un débutant comme moi, je trouve pas ça si pourri (en plus faut pas décourager les gens non !)
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  10. #70
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 50
    Points : 10
    Points
    10
    Par défaut
    Mais mon explode ne marche pas. Cela ne me l'incère pas dans la base. Peut-tu m'aider French s'il te plait? Merci

  11. #71
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Voir message:

    Format de ton fichier Csv, les ';' entre champs les ',' entre ligne ?

    Merci
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  12. #72
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    ini_set('display_errors', 1);
    error_reporting(-1);
     
    require_once 'connexion.php';
     
    $fichier = fopen('pers.csv', 'rb');
    $requete = "INSERT INTO equipements.sapeurs (matriculesp, nomsp, prenomsp, daterecrutementsp, numcs) VALUES ('%s','%s','%s','%s','%s')";
     
    while (($donnee = fgetcsv($fichier, 0, ';')) !== false) {
        $date = date_parse_from_format('d/m/Y', $donnee[2]);
        $donnee[2] = $date->format('Y-m-d');
     
        $donnee = array_map('mysql_real_escape_string', $donnee);
        $sql = vsprintf($requete, $donnee);
     
        $query = mysql_query($sql);
     
        if (false === $query) {
            echo mysql_error(), ' : ', $sql;
        }
    }
     
    fclose($fichier);

  13. #73
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 50
    Points : 10
    Points
    10
    Par défaut
    Ah tu recu mon code French?

  14. #74
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    amandine, dans le code que tu avais refais à partir du mien tu as viré la taille de ligne à lire (paramètre n°2 de fgetcsv), que tu as oublié aussi stealth35, en mettant le paramètre 3 (le délimiteur de colonne): ";"

    et mon code était juste basé sur le tien que tu avais fait presque toute seule hors quelques erreurs qu'on a corrigé ensemble...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  15. #75
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 50
    Points : 10
    Points
    10
    Par défaut
    Même en changeant ca, sa me met tout dans ma variable $nom!

  16. #76
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 50
    Points : 10
    Points
    10
    Par défaut
    Voila Eric mon fichier csv

  17. #77
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    y a rien

    envoi en mp avec l'attachement de fichier surtout s c'est des données réelles et pas de test...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  18. #78
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Donc au final, reste ton changement de format de date (puisque le reste marche d'après ton dernier code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?php 
    require_once('connexion.php');
    // Bien que require_once le fait qu'une fois, c mieux ici
    $i = 1;
     
    if (($fichier = fopen("pers.csv", "r")) !== FALSE) {
        while (($ligne = fgetcsv($fichier,",")) !== FALSE) {
            $num = count($ligne);
            echo "<p> ligne numero $i: <br /></p>\n";
            $i++;
            for ($j=0; $j < $num; $j++) {
                $donnee=explode(";",$ligne[$j]);
     
    			echo $donnee[0] ."<br />"; //nom
    			echo $donnee[1] ."<br />";//prenom
    			echo $donnee[2] ."<br />"; //date
    			echo $donnee[3] ."<br />"; //matricule
    			echo $donnee[4] ."<br />"; //centre
     
    	             // Modif format date
                              $date2=explode("/",$donnee[2]);
                              $date_final=$date2[2].'-'.$date2[1].'-'.$date2[0];
    		$requete = "INSERT INTO EQUIPEMENTS.SAPEURS (MATRICULESP,NOMSP,PRENOMSP,DATERECRUTEMENTSP,NUMCS) VALUES ('$donnee[3]','$donnee[0]','$donnee[1]','$date_final','$donnee[4]')";
    		mysql_query($requete);
            }
        }
        fclose($fichier);
    }
     
    ?>
    Fait attention à $date_finale dans l'insert
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  19. #79
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    vous refaites les même erreurs ...

  20. #80
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bein non puisque ça marche avec tous les champs sauf la date

    Je pense qu'elle a un fichier avec des champs distincts par des ";" et pour chaque ligne une ',' sinon il y aurait des erreurs

    Donc pour la date, c peut être pas terrible mais ça devrait être Ok ()

    par contre j'aurais escapé les chaines qd même c sûr (comme ton code ou avec AddSlashes) à cause du mysql_query (que j'utilise plus d'ailleurs)
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire et parcourir un fichier .txt en php
    Par okoweb dans le forum Langage
    Réponses: 3
    Dernier message: 06/09/2012, 13h24
  2. PB manipulation fichier txt en php
    Par toulonnais83 dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2007, 00h23
  3. parcourir un fichier txt à la recherche d'une chaine
    Par Zen_Fou dans le forum Langage
    Réponses: 2
    Dernier message: 27/03/2007, 23h25
  4. Flash, fichier txt et PHP ?
    Par djedje37et28 dans le forum Langage
    Réponses: 1
    Dernier message: 08/09/2006, 21h25

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