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 :

Impossible d'importer certaines données


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Par défaut Impossible d'importer certaines données
    Bonjour à tous et merci d'avance pour les possibles aides que vous pourrez apporter a mon problème qui dure maintenant depuis quelques jours .

    Voila, je suis stagiaire et dans un projet, je suis en phase d'importation de données contenues dans un fichier texte vers une basée de donées mysql.

    Jusqu'a là, pas de problèmes, sauf au moment de mettre des accents.. problème.

    Vous allez me dire "Alala encore un problème de charset, tu a des caractères bizarres ?"... non non, quand j'ai des caractères accentués,
    l'importation est refusée a partir de la ligne et pour les lignes suivantes. ( = seuls les occurences précédentes sont importées dans la table,
    les autres sont ignorées).

    C'est un cas que je n'ai vu décrit nulle part, même mon maitre de stage s'y est cassé les dents.

    Une bizzarerie a retenu mon attention : alors que j'ai bien vérifié que tout est en utf8 ( sauf le document texte en ANSI,
    en autre chose il refuse toute importation), c'est a dire php, mysql coté client et serveur, base de données, table,
    lorsque j'affiche le resultat de la commande mysql_client_encoding(); , ca me renvoit latin1_swedish_ci.

    Mes fichiers :

    Page php
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <html>
    <head><title>Création BDD</title></head>
    <meta http-equiv="Content-Type" content="text/html"; charset="utf_8" />
    <body>			
     
    <?  echo 'début création<br><br> ';
     
        $connect=mysql_connect ("127.0.0.1","root", "toto");
     
     
     
    	if ($connect==true) { echo 'connexion réussie<br><br>'; } else { echo 'echec connexion';}
    	mysql_query("drop database aurel");
    	mysql_query("create database aurel");
     
    	mysql_query("use aurel");
     
    	mysql_query("CREATE TABLE typecontact
    	( codetype integer PRIMARY KEY,
    	  libelletype char(35));");
     
    	mysql_query("CREATE TABLE region
    	( nomregion char(35)  PRIMARY KEY);");
     
    	mysql_query("CREATE TABLE departement
    	( codedep integer  PRIMARY KEY,
    	  nomdep char(35),
    	  region char(35));");
     
    	mysql_query("CREATE TABLE ville
    	( codepostal integer PRIMARY KEY,
    	  nomville char(50),
    	  codedepartement integer);");
     
    	mysql_query("CREATE TABLE societe
    	( codesoc integer auto_increment PRIMARY KEY,
    	  nomsoc char(50),
    	  adrsoc char(50),
    	  codepostalsoc integer,
    	  numfixesoc char(14),
    	  numtelecopiesoc char(14),
    	  pagewebsoc char(80),
    	  emailsoc char(80));");  
     
    	mysql_query("CREATE TABLE contact 
    	( numcontact integer auto_increment PRIMARY KEY,
    	  nomcontact char(50),
    	  prenomcontact varchar(30),
    	  adrcontact char(30),
    	  codepos integer,
    	  numfixe char(14),
    	  numportable char(14),
    	  email char(30));");
     
    		$Fnm = "../../../../www/contact.txt";
    		$inF = fopen($Fnm,"r+");
    		$tableau = file($Fnm);
     
    		while(list($cle,$val) = each($tableau)) {
    			utf8_encode($val);
       			echo ($val),"<br>";
    		}
     
    		/*$fp = fopen("../../../../www/contact.txt","r+");
    		$donnees = fgets($fp,255);
    		$don=utf8_encode($donnees);
    		echo ($don),'<br><br>';
    		$dondeux= fgets($fp,255);*/
    		mysql_query("charset utf8");
    		$enc=mysql_client_encoding();
    		echo 'Charset MySQL : ',($enc),'<br>';
     
    		mysql_query("INSERT INTO contact (numcontact,nomcontact,prenomcontact,adrcontact,codepos,numfixe,numportable,email) VALUES 	(4,'RODRIGO','Aurélien','7 bd président Wilson',94230,'01 46 63 60 86','06 15 98 52 84','aurelviot@yahoo.fr')");
    		//echo'Le fichier contient : ',$donnees,'<br><br>';  
     
     
    	  mysql_query("LOAD DATA INFILE '../../../../www/region.txt' INTO TABLE region LINES TERMINATED BY '\r\n';");
    	  mysql_query("LOAD DATA INFILE '../../../../www/departement.txt' INTO TABLE departement FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n';");
    	  mysql_query("LOAD DATA INFILE '../../../../www/typecontact.txt' INTO TABLE typecontact FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n';");
    	  mysql_query("LOAD DATA INFILE '../../../../www/societe.txt' INTO TABLE societe FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n';");
      	  mysql_query("LOAD DATA INFILE '../../../../www/contact.txt' INTO TABLE contact FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n';");
    	  mysql_query("LOAD DATA INFILE '../../../../www/ville.txt' INTO TABLE ville FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n';");
     
     
     
    	 echo 'fin creation';
    	 mysql_close();
    ?>
    </body>
    </html>
    Fichier texte "contact.txt" (par exemple, mais c'est pareil pour n'importe quelle autre table).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    1;VIAUD;Adrien;7 bd montreuil ;75000;01 75 68 40 85;06 32 10 87 61;tata@titi.com
    2;ANTSUL;Stephane;Somewhere in France;75000;01 01 01 01 01;06 06 06 06 06;tutu@toto.com
    3;VIAUD;Esuréx;7rsamme;98123;12 21 12 21 12;23 23 23 23 23;Esuviaud@uit.com
    ps : les données sont fictives

    Je reprécise, l'importation marche parfaitement quand aucune donnée ne comporte d'accent.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    pourquoi ne fais-tu pas un iconv sur ton ficher de données avant... ?


    comme ça tu lis du utf-8...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Par défaut
    En effet, ca marche parfaitement. Merci de l'aide (Je ne connaissais pas cette fonction)

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

Discussions similaires

  1. [XL-2010] Impossible d'importer des données web
    Par josmel dans le forum Excel
    Réponses: 1
    Dernier message: 17/12/2014, 22h31
  2. [SP-2010] Import/Export : Conserver certaines données
    Par Tomtom4731 dans le forum SharePoint
    Réponses: 4
    Dernier message: 01/09/2011, 09h56
  3. impossible d'importer ma base de données
    Par vevert dans le forum MySQL
    Réponses: 4
    Dernier message: 14/06/2010, 14h37
  4. Réponses: 3
    Dernier message: 20/04/2010, 09h31
  5. Importation de données postgresql
    Par ythierrin dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 10/10/2003, 22h18

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