Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/06/2006, 17h47   #1
Invité de passage
 
Inscription : juin 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 2
Points : 1
Points : 1
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 :
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 :
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.
Aurelviot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 18h13   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
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
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 11h26   #3
Invité de passage
 
Inscription : juin 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 2
Points : 1
Points : 1
En effet, ca marche parfaitement. Merci de l'aide (Je ne connaissais pas cette fonction)
Aurelviot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h55.


 
 
 
 
Partenaires

Hébergement Web