Importation csv vers table sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Importation csv vers table sql

par Sékiltoyai » 30 avr. 2008, 08:30

En effet, cela me génère 2 problèmes :

1- Les chiffres décimaux ne sont pas transferé en intégralité. 10,25 devient 10
Ma colonne est paramétré "décimale (10,0)".
2- J'ai une liste d'une vingtaine de pages de lignes à 0 après le dernièr enregistrement.

Je n'ai pas trouvé de réponse ou un début de solution à ces problèmes. J'en appel donc à votre aide et votre générosité.

:wink:
Rien de plus normal. En informatique, on programme le plus souvent en anglais, ce qui signifie que les nombres aussi sont en anglais. Pour signifier 10,25, il faut donc écrire 10.25.
D'autre part, pour la vingtaine de pages vides, je pense que tu as des lignes vides ou mal formatées dans ton fichier.

par Sirgeese » 30 avr. 2008, 07:46

Bonjour à tous,

Après recherche acharné ici ou là, j'ai réussit à obtenir un script fonctionnel, mais pas complètement efficace.
<?php

//////////////////////////////////////////////
// Importation d'un fichier local .csv vers une base SQL//
// remplacer ***** par informations adéquat//
/////////////////////////////////////////////

//Connexion à la bdd
mysql_connect ("localhost", "root", "*****") or die (mysql_error()); 
mysql_select_db ("*****");

//Suppression des informations de la table (pour ré-enregistré proprement les données
//C'est optionnel ! ^^

$del = 'DELETE FROM `numerique`';

//Mise en forme de la requête
$result = mysql_query($del);
$sql = 'LOAD DATA LOCAL INFILE \'*****.csv\' 
		REPLACE INTO TABLE `******` 
			FIELDS 
			TERMINATED BY \';\' 
			ENCLOSED BY \'"\' 
			ESCAPED BY \'|\' 
		LINES 
			TERMINATED BY \'\\r\\n\' 
			IGNORE 1 LINES';

//Envoi de la requête à SQL
$result = mysql_query($sql);

//Affichage d'une erreur éventuel du traitement
echo mysql_error();


mysql_close ();

?>
En effet, cela me génère 2 problèmes :

1- Les chiffres décimaux ne sont pas transferé en intégralité. 10,25 devient 10
Ma colonne est paramétré "décimale (10,0)".
2- J'ai une liste d'une vingtaine de pages de lignes à 0 après le dernièr enregistrement.

Je n'ai pas trouvé de réponse ou un début de solution à ces problèmes. J'en appel donc à votre aide et votre générosité.

:wink:

par Sékiltoyai » 28 avr. 2008, 09:31

Lis les exemples de la doc : mysql_query()

par Sirgeese » 28 avr. 2008, 08:46

Merci pour ta réponse.

J'ai ajouté un query, (ce qui me semble logique après coup), mais j'ai l'erreur (ci après code php) qui me revient.
<?php
//Connexion BDD
mysql_connect ("localhost","root"," ") or die (mysql_error()); 
mysql_select_db ("prod");

//Transfer du fichier *.csv vers la table
// définition du fichier  explorer

$reponse = mysql_query (LOAD DATA INFILE ‘prod2008.csv’ 
INTO TABLE numerique
FIELDS
TERMINATED BY ';'
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES
STARTING BY ''
TERMINATED BY '\n'
IGNORE 1 LINES
(of, client, q, type, largeur, longueur, m², prevue, support, machine, n, r, fin, operateur, observation) or die (mysql_error());

//Déconnexion de MySQL
mysql_close();

?> 
Parse error: syntax error, unexpected T_STRING in C:\Program Files\wamp\www\import\import.php on line 9
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Calimero » 25 avr. 2008, 20:02

Bonjour,

L'explication est simple : tu colle ta requete SQL au milieu de ton code php en priant tres fort pour que ca marche... Ce qui ne risque pas d'arriver! Va voir du cote de mysql_query() :-)

Importation csv vers table sql

par Sirgeese » 25 avr. 2008, 18:00

Bonjour à tous,

J'ai effectué quelques recherche concernant la manière d'importer une fichier csv pour une base sql.
Cependant, je me retrouver confronté à cette erreur récurrente :
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\import\import.php on line 9
Je me dit que j'ai un soucis avec la ponctuation ou ma base.

Voici mon code :
<?php
//Connexion BDD
mysql_connect ("localhost","root"," ") or die (mysql_error()); 
mysql_select_db ("prod");

//Transfer du fichier *.csv vers la table
// définition du fichier  explorer

LOAD DATA INFILE ‘prod2008.csv’ 
INTO TABLE numerique
FIELDS
TERMINATED BY ';'
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES
STARTING BY ''
TERMINATED BY '\n'
IGNORE 1 LINES
(of, client, q, type, largeur, longueur, m², prevue, support, machine, n, r, fin, operateur, observation);


//Déconnexion de MySQL
mysql_close();

?>
Pour information, j'utilise Wamp. J'ai crée une base 'prod' dans lequel j'ai une table 'numerique'.

Si vous avez un éclairage à m'apporter, il sera le bienvenue. Merci d'avance. :wink: