Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 09/02/2012, 11h54   #1
Invité régulier
 
Homme
Apprenti Ingénieur
Inscription : novembre 2011
Messages : 71
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Apprenti Ingénieur
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : novembre 2011
Messages : 71
Points : 8
Points : 8
Par défaut Importer csv en PHP dans BDD.

Bonjour,

Je cherche à importer un fichier CSV (créé avec Excel) directement dans ma base MySQL depuis une page web de mon site, mais pas moyen de comprendre le principe !

Je suis tombé sur cette fonction en cherchant :

Code :
1
2
3
LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY '\n';
Mon csv se présente comme ceci (les 4 première ligne) :

Code :
1
2
3
4
0000ELH3;Liaison Fast Ethernet PàP Local Ethernet;Jacques HUET;ECOLE HAUTES ETUDES COMMERCIALES NO;58 RUE DU PORT;  10 R ETTORE BUGATTI;LILLE;59800
0000FVA9;CE2O Feuille DSLAM création :;Jacques HUET;VERRERIES DE MASNIERES;ROUTE NATIONALE;80 PLACE D'ARMES;MASNIERES;59241
0000HFN2;Liaison Fast Ethernet PàP Local Ethernet;OLIVIER GRANDTENER;L'UNION;5 RUE DE TALLEYRAND; DOMAINE AIGLEMONT;REIMS;51100
0000JLU8;LOCAL ETH Pt Pt IDF création :;Jacques HUET;SOCIETE TRANSPAC;65 RUE FAIDHERBE;14 AVE ALBERT 1ER;VILLENEUVE D'ASCQ;59650
Moi ça se présenterai plus de la façon :

Code :
1
2
3
LOAD DATA INFILE 'fichier.csv' INTO TABLE histo
  FIELDS TERMINATED BY ';' ENCLOSED BY ''
  LINES TERMINATED BY '\n';
Comment puis-je integrer ça dans une page en php ?

Merci d'avance !
stevenP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 10h34   #2
Invité régulier
 
Homme
Apprenti Ingénieur
Inscription : novembre 2011
Messages : 71
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Apprenti Ingénieur
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : novembre 2011
Messages : 71
Points : 8
Points : 8
J'ai trouvé comment faire !

Voici mon code pour ceux que ça intéresse

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
<?php
	if(isset($_FILES['csv']))
	{ 
		 $dossier = 'upload/';
		 $fichier = basename($_FILES['csv']['name']);
		 if(move_uploaded_file($_FILES['csv']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
		 {
			  echo "Upload du fichier effectué avec succès !";
		 }
		 else //Sinon (la fonction renvoie FALSE).
		 {
			  echo "Echec de l\'upload !";
		 }
	}
 
	echo "<br>Chemin du fichier : upload/".$_FILES['csv']['name']."<br><br>Resultat Import SQL : <br>";
 
	mysql_connect('localhost', 'root', '');
	mysql_select_db('xls_db');
	mysql_query("SET NAMES UTF8");
 
	//Le chemin d'acces a ton fichier sur le serveur
	$fichier = fopen("upload/".$_FILES['csv']['name'], "r");
 
	//tant qu'on est pas a la fin du fichier :
	while (!feof($fichier))
	{
	// On recupere toute la ligne
	$uneLigne = addslashes(fgets($fichier));
	//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';')
	$tableauValeurs = explode(';', $uneLigne);
	// On crée la requete pour inserer les donner (ici il y a 12 champs donc de [0] a [11])
	$sql="INSERT IGNORE INTO histo VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."', '".$tableauValeurs[7]."')";
 
	$req=mysql_query($sql)or die (mysql_error());
	// la ligne est finie donc on passe a la ligne suivante (boucle)
	}
	//vérification et envoi d'une réponse à l'utilisateur
	if ($req)
	{
	echo "<h2>Ajout dans la base de données effectué avec succès</h2>";
	}
	else
	{
	echo "Echec dans l'ajout dans la base de données";
	}
?>
stevenP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 00h32   #3
Invité de passage
 
Inscription : février 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 4
Points : 1
Points : 1
Ah merci pour l'info, pratique, je vais la tester dès lundi
synopsis-france 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 02h04.


 
 
 
 
Partenaires

Hébergement Web