Popolare tabella MySQL con i dati di un file .CVS

Faber

Nuovo Utente
10 Giu 2014
2
0
0
Gentili esperti,
sono un neofita dell'argomento PHP-MySQL, e sto cercando di popolare una tabella (del DB) con il contenuto di un file .csv. La tabella è costituita da due prime colonne di interi e da altre due colonne di numeri decimali. L'operazione avviene (quasi) con successo, sennonchè alcuni numeri della porzione decimale degli elementi delle ultime due colonne risultano alterati (nella tabella del DB). Come se, durante il "trasferimento" dal .csv al DB, la porzione decimale dei numeri venisse, in parte, modificata arbitrarimente. Il SO è impostato in modo da usare il "." come separatore della parte decimale. Non capisco a cosa sia dovuta questa anomalia. Qualcuno può aiutarmi? Grazie mille.

Le righe del file .csv sono così (separatore di campo ";" e fine riga ","):

1;13111;6.5448130;45.1344600;,
2;13333;6.5505920;45.0846300;,
3;13555;6.5564280;45.0347900;,
4;13777;6.5621080;44.9849600;,

Mentre quello che registro nella Tabella del DB è:

1 13111 6.5448132 45.1344604
2 13333 6.5505919 45.0846291
3 13555 6.5564280 45.0347900
4 13777 6.5621080 44.9849586

Genero la tabella così:

try
{
$sql = 'CREATE TABLE pippo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
paperino SMALLINT ZEROFILL,
pluto FLOAT(8,7),
topolino FLOAT(9,7)
) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB';
$pdo->exec($sql);
}
catch (PDOException $e)
{
$output = '>>> Errore nella creazione della tabella "pippo" del database "gastone": ' . $e->getMessage();
include 'output.html.php';
exit();
}

Popolo la tabella così:

try
{
$miofile = 'percorso/pippo.csv';
$miatable = 'pippo';
$sql = "LOAD DATA INFILE '$miofile' INTO TABLE $miatable FIELDS TERMINATED BY ';' LINES TERMINATED BY ','";
$query = $pdo->exec($sql);

}
catch (PDOException $e)
{
$output = '>>> Errore nel popolamento della tabella "pippo" del database "gastone": ' . $e->getMessage();
include 'output.html.php';
exit();
}
 

Faber

Nuovo Utente
10 Giu 2014
2
0
0
Mi rispondo da solo :)
Il problema si risolve modificando la tipologia numerica delle colonne interessate dall'anomalia da FLOAT a DOUBLE.
In verità mi sarei aspettato che la tipologia FLOAT fosse sufficiente per gestire correttamente almeno 7 cifre decimali, ma si vede che mi sbagliavo.
Saluti.
F
 
Discussioni simili
Autore Titolo Forum Risposte Data
V popolare tabella da mysql PHP 7
elpirata Popolare campi tabella con totali estratti da database PHP 24
otto9due Popolare campi tabella excell da maschera access MS Access 0
B Cercare il nome più popolare su una tabella PHP 11
F popolare tendina con dati tabella PHP 4
P Popolare una tabella da utenti: nazione, città, provincia PHP 0
M Popolare una tabella con numero righe e colonne prefissate PHP 6
P Popolare tabella da file .sql PHP 0
P Popolare tabella da file .sql PHP 3
Monital Popolare tabella con risultati di una query PHP 0
J Popolare tabella con risultati di una query PHP 2
D popolare campi tra th alla select PHP 36
D Popolare array PHP 8
felino Excel: popolare una cella con la data di modifica della riga a cui appartiene Windows e Software 3
F classic asp popolare combo box javascript Presentati al Forum 1
L [MS Access] come popolare automaticamente i campi di una sottomaschera MS Access 8
S Popolare campi di input con metodo $.getJSON jQuery 6
F (Vendo) Spazio Banner - Guest Post a poco prezzo su Blog popolare Vendere e Acquistare pubblicita' online 0
P popolare una select da input PHP 0
pup3770 Popolare random Database - per test MySQL 1
M Popolare menu a tendina in EDIT PHP 18
neo996sps [Laravel 5.1 + ajax] Popolare select concatenate Regioni, Province, Comuni PHP 1
W Popolare select da Jquery jQuery 2
D [Java] Popolare jtable da db Mysql con DefaulTableModel Java 1
L Popolare uitableviewcontroller partendo da uiviewcontroller Sviluppo app per iOS 0
K Popolare select con piu campi in orizzontale PHP 1
K query per popolare una select tramite ajaxc php e xml ! Ajax 14
S [risolto] Aiuto: ciclo php ( for / while). popolare select dinamicamente da array id. PHP 9
A funzione per popolare un drop down list Javascript 4
P Popolare un Database da una mappa di google map PHP 7
S [ACCESS]: Database e interfaccia grafica, popolare caselle dinamicamente MS Access 0
P [Vb.Net] Popolare un List View da database .NET Framework 1
neo996sps [Visual Studio] Popolare datagrid tramite query Visual Basic 0
garrincha Come faccio a far diventare popolare un video su youtube ? Social Media Marketing 3
neo996sps Popolare un array con dati prelevati tramite while PHP 5
L Flash AS3: popolare array di oggetti presenti in libreria Flash 0
T popolare database di una directory Database 1
M Popolare una Listview da database MySql PHP 5
S popolare il database CMS (Content Management System) 4
I Popolare una select da un'altra PHP 3
A popolare simpleConnect da php Flash 0
A popolare simpleConnect da php PHP 0
F popolare array in modo esatto Classic ASP 3
B Popolare combo in base ad un'altra combo Classic ASP 13
peppoweb Popolare un Lista a Tendina Dinamicamente PHP 2
X Popolare una select a selezione multipla?!?! PHP 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
N dati tabella non presi PHP 0
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
R INSERT INTO tabella non funziona Classic ASP 2

Discussioni simili