Importare correttamente in tabella file CSv con doppi apici

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Salve, sono pochi mesi che mi dedico a PHP Mysql e essendo autodidatta ovviamente ho moltissimi problemi ma grazie al web sono riuscito a fare le prime cose (insert, edit, delete, export in csv, import in csv).
Il file csv lo importo ma non sono incolonnate correttamente le stringhe con doppio apice tipo "aaaa, bbb, ccc", infatti nella prima colonna trovo "aaaa nella seconda bbb nella terza ccc"

Ho provato a sostituire i doppi apici con spazio, ma il risultato è lo stesso, essendoci la virgola come separatore divide ovviamente in 3 campi diversi, nella prima colonna trovo aaa nella seconda bbb nella terza ccc

l’unica differenza è che non ci sono i doppi apici.

Per importare correttamente il file csv devo togliere i doppi apici e successivamente le virgole che sono nella stringa aaaa, bbb, ccc, ma se fosse possibile vorrei che il tutto fosse automatico.

Per importare il file csv sto usando questo codice trovato in rete:

mysql_query("LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE mytable FIELDS TERMINATED BY ',' ESCAPED BY '/' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 3 LINES");


Mi potete aiutare?

Grazie, Marzio
 
Ciao, potresti modificare il separatore di campi del csv con il punto e virgola anzichè la sola virgola
la query diventerebbe cosi
Codice:
LOAD DATA INFILE 'file.csv' INTO TABLE tabella FIELDS TERMINATED BY ';'
 
Ciao, potresti modificare il separatore di campi del csv con il punto e virgola anzichè la sola virgola
la query diventerebbe cosi
Codice:
LOAD DATA INFILE 'file.csv' INTO TABLE tabella FIELDS TERMINATED BY ';'

Grazie per la risposta, ma il file che devo importare è di circa 1350 righe così strutturato:

01.1.1.1.0,Seg.con,-,-,pippo,648,,,99.416973,99.270964,-0.1,110.8,110.8,110.7,-0.1,-0.1
01.1.1.1.0.01,P.rappr.s,M,-,Riso,648,2.244397,2.23,99.416973,99.270964,-0.1,110.8,110.8,110.7,-0.1,-0.1
01.1.1.2,Fam.,-,-,"pippo, pluto, minnie",593,,,99.920056,99.287105,-0.6,116.6,113.0,112.2,-3.8,-0.7

non ha il punto e virgola ; come separatore ma la virgola e i famosi doppi apici per le stringhe.
Per importarlo correttamente devo prima sostituire i doppi apici con lo spazio, dopodichè vado a togliere manualmente le virgole nelle stringhe tipo "pippo, pluto, minnie" facendole diventare pippo pluto minnie a questo punto l'importazione è perfetta, ma ripeto sono 1350 righe da correggere e mi servirebbe qualcosa di più efficace.

Grazie ancora per l'aiuto che saprete darmi
Max61
 
Se usi open office :
file -> salva con nome
dal menu "salva come" scegli CSV
ti chiederà di "mantenere il formato", conferma
poi puoi scegliere i separatori
cambia la virgola nel separatore di campo con il punto e virgola
se vuoi puoi anche cambiare gli apici nel separatore di testo
salva e importa
 
Se usi open office :
file -> salva con nome
dal menu "salva come" scegli CSV
ti chiederà di "mantenere il formato", conferma
poi puoi scegliere i separatori
cambia la virgola nel separatore di campo con il punto e virgola
se vuoi puoi anche cambiare gli apici nel separatore di testo
salva e importa


Scusa se soltanto adesso Ti posso rispondere, soltanto oggi ho provato a fare come mi hai suggerito:
FUNZIONA!!!
Grazie infinite:beer:

Siccome sono nuovo del forum (e di PHP), Ti volevo chiedere come si fa ad aprire una nuova discussione.

Max
 

Discussioni simili