Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: CSV 80 M

  1. #11
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    mi sa ke avevo fatto casino nell'impostare l'indice del database...cqm ora ho inserito anke l'inserimento del valore x l'indice e funziona tutto.....

    grazie mille di avermi "sopportato"...


    ciaooo


  2. #12
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    di niente

  3. #13
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    ho un problemino....ho notato ke le query ke devono importare del codice con dentro un apice...per esempio se c'è scritta la parola CITTA'...quella query da errore e non viene inserito niente ne db..... come posso ovviare a questo problema ? ci sono altri caratteri da cui mi devo difendere? grazie




  4. #14
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    addslashes($citta)

    quando visualizzerai i dati a video:

    stripslashes($rowdb['citta']);


  5. #15
    Ciao,

    IMHO il metodo più semplice ed efficiente è il seguente

    crea la tabella come la vorresti e poi usa mysqimport o LOAD DATA INFILE

    http://dev.mysql.com/doc/mysql/en/mysqlimport.html
    http://dev.mysql.com/doc/mysql/en/load-data.html

    poi applica eventuali correzioni

    ti trovi i dati caricati in un attimo (se non vuoi fare uno script ci sono anche diversi tool per amministrare Mysql che ti forniscono queste funzionalità)
    per favore NIENTE PVT TECNICI da sconosciuti

  6. #16
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    molto interessante, non conoscevo queste funzionalità, grazie

  7. #17
    HO dovuto importare un csv da 200 mega (tutte le lavorazioni di telecom edl 2005 riguardanti i reclami videotelefono e aladino pensate quanti)

    Cmq in locale ho aperto il file con un editor di testo (sotto linux non ci ha messo neppure troppo meno di 5 minuti ) e ho ricopiato il contenuto in una textarea (ho modificato l'impostazione oltre i 2048 kb di default) e l'ho passata ad una pagina che me la inserisce nel db e che me la lavora cosi:
    Codice PHP:
    $contratti explode ("\r\n"$_POST["valori"]);

        for (
    $i 0$i count ($contratti); $i++)
        {
        
    $colonna explode (";"$contratti[$i]); 

  8. #18
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    e se in un campo qualcuno ha inserito un ;?

  9. #19
    Originariamente inviato da gianiaz
    e se in un campo qualcuno ha inserito un ;?
    impossibile

    Per me era solo un discorso numerico al massimo possono essere lettere tipo SUD CENTRONORD nulla di più .

    Ma se lui si appoggia su un excel puo modificare il ; delle celle con una qualcosa di strano tipo #@1£ e al che il gioco sarebbe fatto

  10. #20
    Utente di HTML.it L'avatar di mick
    Registrato dal
    Jun 2004
    Messaggi
    34
    Ciao, per importare tramite script php valori da un file csv avevo fatto una cosa del genere, ma ottengo errori:

    <?
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    $query = "use $db_name";
    $ca="";
    $valu="";
    if (mysql_query($query, $db)){
    $percorso=$_GET['file'];
    $dbtable=$_GET['dbtable'];
    $campi = mysql_list_fields($db_name,$dbtable,$db);
    $colonne = mysql_num_fields($campi);
    $virgola = ",";
    for ($k = 0; $k < $colonne; $k++){
    if($k==$colonne-1) $ca = $ca.mysql_field_name($campi,$k);
    else $ca = $ca.mysql_field_name($campi,$k).$virgola;
    }
    $query2 = "LOAD DATA LOCAL INFILE $percorso INTO TABLE $dbtable FIELDS TERMINATED BY $virgola LINES TERMINATED BY \\r\\n";
    //mysql_query($query2, $db) or die("Errore2 ".mysql_error());
    $separatore=";";
    $apice= "'";
    $nome_file=$_GET['file'];
    if(file_exists($nome_file)){$fp = fopen($nome_file, "r");}
    else{echo "File introvabile
    "; exit();}
    while (!feof($fp)) {
    $linea = fgets($fp,4096);
    $liste = explode($separatore,$linea);
    $i=0;
    $j=0;
    for ($i = 0; $i < $colonne; $i++){
    $r[$i]=addslashes(stripslashes($liste[$i]));}
    $i=0;
    for ($i = 0; $i < $colonne; $i++){echo $r[$i],'
    ';}
    for($j=0;$i<$colonne;$j++){
    if($j==0){$valu = $apice.$r[$j].$apice;}
    else{$valu = $valu.$virgola.$apice.$r[$j].$apice;}
    }
    $query3 = "INSERT INTO $dbtable ($ca) VALUES ($valu)";
    echo $query3,'
    ';
    mysql_query($query3, $db) or die("Errore3 ".mysql_error());
    }
    }
    else{echo "Connessione al db non riuscita";}
    ?>

    in $query2 ottengo errore di sintassi (non è vero...se la stampa la query è corretta!!!)

    in $query3 ottengo che la query non collima col numero delle colonne perchè l'array $valu contiene strani caratteri...

    $percorso=$nomefile=nome file csv

    qualcuno saprebbe dirmi dove sbaglio?
    Mick: Be Simply Natural

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.