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

Requêtes MySQL Discussion :

fichier .txt vers Mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 27
    Points : 18
    Points
    18
    Par défaut fichier .txt vers Mysql
    Bonjour,

    j'ai un fichier texte de ce type :

    Lap 00:00:00 Villeneuve 2.0 1 0.8540
    Lap 00:00:00 Villeneuve 2.0 2 0.3790

    J'aimerais que tout les champs de chaque lignes soient inséré dans une bd via php.
    Voici le résultat recherché:

    Course Temps_fin coureur version tour temps_tour
    ------------------------------------------------------------------------------
    1 | Lap 00:00:00 Villeneuve 2.0 1 0.8540
    2 | Lap 00:00:00 Villeneuve 2.0 2 0.3790

  2. #2
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    En admettant que l'on soit certain du format attendu, tu peux parcourir ton fichier après l'avoir chargé dans un array avec file(), puis à chaques itération tu décompose ta chaine avec explode en prenant comme séparateur l'espace, puis tu construit ta requête à partir de cela.

    Ce qui donnerait à peu près ceci :

    <?php

    &#160;&#160;&#160;&#160;$data&#160;
    =&#160;file&#160;(&#160;'mon_fichier.txt'&#160;)&#160;;

    &#160;&#160;&#160;&#160;foreach&#160;(&#160;
    $data&#160;as&#160;$value&#160;)
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;
    $tab&#160;=&#160;explode&#160;(&#160;'&#160;'&#160;,&#160;$value&#160;)&#160;;
    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;
    $sql&#160;=&#160;"
    &#160;&#160;&#160;&#160;INSERT&#160;INTO&#160;ma_table&#160;(&#160;Course&#160;,&#160;Temps_fin&#160;,&#160;coureur&#160;,&#160;version&#160;,&#160;tour&#160;,&#160;temps_tour&#160
    &#160;&#160;&#160;&#160;VALUES&#160;(&#160;'"&#160;
    .&#160;mysql_real_escape_string&#160;(&#160;$tab[0]&#160&#160;.&#160;"'&#160;,&#160;
    &#160;&#160;&#160;&#160;'"&#160;
    .&#160;mysql_real_escape_string&#160;(&#160;$tab[0]&#160&#160;.&#160;"'&#160;,
    &#160;&#160;&#160;&#160;'"&#160;
    .&#160;mysql_real_escape_string&#160;(&#160;$tab[1]&#160&#160;.&#160;"'&#160;,
    &#160;&#160;&#160;&#160;'"&#160;
    .&#160;mysql_real_escape_string&#160;(&#160;$tab[2]&#160&#160;.&#160;"'&#160;,
    &#160;&#160;&#160;&#160;'"&#160;
    .&#160;mysql_real_escape_string&#160;(&#160;$tab[3]&#160&#160;.&#160;"'&#160;,
    &#160;&#160;&#160;&#160;'"&#160;
    .&#160;mysql_real_escape_string&#160;(&#160;$tab[4]&#160&#160;.&#160;"'&#160
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;"&#160;
    ;&#160;
    &#160;&#160;&#160;&#160;}
    ?>

    Phpsyntaxcolor powered by decabodi.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    cool ça ressemble bien à ce que je voulais..

    toutefois on dirait que mysql_real_escape_string n'existe pas p-e parce que je suis en php4...

    les espaces sont différents entre chaque texte.

    Lap (6espaces) 00:00:00 (6espaces) Villeneuve (9espaces) 2.0

    Je suis un peu

    Avec explode peut-on lui dire d'enlever tous les espaces entre...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    ok j'ai complètemen changé ma méthode et ça fonctionne :

    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
    $fieldName = array('prog','init','name','version','lap','time');
    $result = array();
    $log = file('FullGrid.txt');
    for($x=0;$x<count($log);$x++){
    	$temp = explode(' ',$log[$x]);
    	$z=0;
    	for($y=0;$y<count($temp);$y++){
    		if($temp[$y] != ''){
    			$result[$x][$fieldName[$z]] = $temp[$y];
    			$z++;
    		}
    	}
    }
    //print_r($result);
     
    //EXEMPLE D'INSERTION
    for($h=0;$h<count($result);$h++){
     
    	$sql = "INSERT INTO resultat VALUES('".$result[$h]['prog']."','".$result[$h]['init']."','".$result[$h]['name']."','".$result[$h]['version']."','".$result[$h]['lap']."','".$result[$h]['time']."')";
    	mysql_query($sql);
    	//etc
    echo $sql.'<br>';
    merci

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

Discussions similaires

  1. importer un fichier txt vers mysql
    Par mouelhi0712 dans le forum Administration
    Réponses: 1
    Dernier message: 29/09/2012, 22h01
  2. Accent fichier txt vers mysql
    Par lodan dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2009, 15h14
  3. Comment transformer les tables dans un fichier txt vers une BD comme Mysql
    Par badrdine.in dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 20/03/2009, 12h58
  4. Importer un fichier texte txt vers mysql
    Par pasc06 dans le forum Débuter
    Réponses: 1
    Dernier message: 31/01/2009, 17h58
  5. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 19h14

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