Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    importare un file csv in un DB mysql

    Salve =)
    Causa prematura morte del cellulare nokia, ho dovuto compiere strambe azioni per salvare la mia rubrica.
    Ora.
    Purtroppo l'unico modo di salvare il tutto era in csv, il che non sarebbe un IMMENSO problema, se non fosse che... non riesco a ripucciare tutto in SQL U_U
    Ho leggiucchiato in giro e un tutorial mi diceva che è possibile farlo con il php, solo che *TADAAANNN* mi dà un magnifico errore: Parse error: syntax error, unexpected T_NS_SEPARATOR
    Capisco che è un errore di punteggiatura, ma che io sia dannata se lo trovo. Per la precisione, è nella riga della query al database, e vi giuro che io al momento sono così fusa che proprio non riesco a pescarlo U_U
    Potreste darmi una mano?

    Questa è la query:
    Codice PHP:
    mysql_query("LOAD DATA LOCAL INFILE 'NumeriNokia.csv' INTO TABLE rubricanokia FIELDS TERMINATED BY "\;\" LINES TERMINATED BY "\\r\\n";'); 
    Mentre questo è un esempio di righe del csv:
    La prima che è la struttura:
    codice:
    "Titolo";"Nome";"Secondo nome";"Cognome";"Titolo straniero";"Professione";"Società";"Compleanno";"Indirizzo SIP";"Push-to-talk";"Condividi vista";"ID utente";"Note";"Cellulare generico";"Telefono generico";"E-mail generico";"Fax generico";"Videochiamata generica";"Indirizzo Web generico";"Indirizzo VOIP generico";"Casella postale generica";"Interno generico";"Via generica";"CAP generico";"Città_ generica";"Provincia generica";"Paese generico";"Cellulare casa";"Telefono casa";"E-mail casa";"Fax casa";"Videochiamata casa";"Indirizzo Web casa";"Indirizzo VOIP casa";"Casella postale casa";"Interno casa";"Via casa";"CAP casa";"Città_ casa";"Provincia casa";"Paese casa";"Cellulare ufficio";"Telefono ufficio";"E-mail ufficio";"Fax ufficio";"Videochiamata ufficio";"Indirizzo Web ufficio";"Indirizzo VOIP ufficio";"Casella postale ufficio";"Interno ufficio";"Via ufficio";"CAP ufficio";"Città_ ufficio";"Provincia ufficio";"Paese ufficio";""
    Due (un dato):
    codice:
    "";"";"";"ABC Marocco";"";"";"";"";"";"";"";"";"";"";"NumeroMarocco";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";""
    Ora, sinceramente io ho qualche piiiiccolo problema con la sintassi nelle query (una tragedia, non ho ancora capito benissimo quando usare nelle query i backslash, quando no, quando i ' e i " danno problemi o meno *disperazione* ), quindi non è che potreste aiutarmi?
    Seguendo il tutorial io ho creato una tabella ("rubricanokia") e ho utilizzato gli indici come campi.
    Non so che altro fare
    Mi dà l'orribile parse error e sono persa TT_TT

    Grazie in anticipo T_T

  2. #2
    Con la funzione importa del PHPMyAdmin puoi facilmente importare questi dati dentro il database


  3. #3
    Originariamente inviato da Samleo
    Con la funzione importa del PHPMyAdmin puoi facilmente importare questi dati dentro il database

    Grazie, ma questo ha due problemi XD
    Uno: non so dove pucciare il file (nella cartella di phpmyadmin?)
    Due: continuerò a non capire l'errore T_T e francamente mi preme, mi importa davvero capirlo per non commetterlo mai più TT__TT

    Dici che comunque ho fatto bene a creare la tabella con quei campi? *mumble*

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    prova così

    mysql_query("LOAD DATA LOCAL INFILE 'NumeriNokia.csv' INTO TABLE rubricanokia FIELDS TERMINATED BY ';' LINES TERMINATED BY \"\r\n\" ");

    quando fai le query non mettere mai il ; alla fine della query.
    Nele query si usano i singoli apici per le informazioni testuali (vedi nome csv) e i doppi apici servono per una corretta inerpretazione dei caratteri speciali come ritorno a capo

    p.s.:

    la query deve risiedere dove sta anche il file csv. non ho usato i tag PHP perchè sennò non si vedono gli slash
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Originariamente inviato da dottwatson
    prova così

    mysql_query("LOAD DATA LOCAL INFILE 'NumeriNokia.csv' INTO TABLE rubricanokia FIELDS TERMINATED BY ';' LINES TERMINATED BY \"\r\n\" ");

    quando fai le query non mettere mai il ; alla fine della query.
    Nele query si usano i singoli apici per le informazioni testuali (vedi nome csv) e i doppi apici servono per una corretta inerpretazione dei caratteri speciali come ritorno a capo

    p.s.:

    la query deve risiedere dove sta anche il file csv. non ho usato i tag PHP perchè sennò non si vedono gli slash
    Grazie per la spiegazione!
    Purtroppo non carica una mazzancolla nel DB :|
    Inizio a pensare di aver fatto una qualche cavolata o che manchi qualcosa U_U
    Non carica nemmeno usando la funzione del phpmyadmin O__O;;;;
    Andrà a finire che importo tutto a mano, anche se soffro al solo penZiero...

  6. #6
    Desistito!
    Ho fatto un'operazione di forza con un magnifico copia e sostituisci, mettendo la cara vecchia sintassi SQL.
    Bah.
    Comunque ho imparato nuove cose, grazie a dottwatson ^_^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.