• User

    problema con fgetcsv

    Visto che non risolvo la situazione "csv" con il post precedente...
    ho provato a fare questa ma anche qui...ho i miei problemini...non essendo una cima in php :vai:

    questa è la funzione che estrapola i dati da un file csv e me li stampa a video...l'ho adattato alle mie esigenze e funziona...niente da dire...

    il mio problema è che il file csv è composto da tre campi:

    codice, descrizione, catalogo

    io ho bisogno di estrapolare dal file csv la colonna del codice, qualla della descrizione e quella del catalogo e inserirla in un database mysql...

    quindi devo risalire a 3 variabili $codice, $descrizione, $catalogo
    $codice contenente tutti i valori della colonna 1
    $descrizione contenetne tutti i valori della colonna 2
    $catalogo contenete tutti i valori della colonna 3

    (se vi ricordate ho prevato a farlo da excel con excelreader ma...perdeva campi per strada...se ce n'erano 2000 anche anche funzionava ma nel mio caso ce ne sono quasi 20000 e me ne scriveva nella tabella 15000)

    Ecco la funzione (unica in giro eh!!!) che ho trovato....

    grazie per le risposte....

    <?php
    $row = 1;
    $handle = fopen("test.csv","r");
    while ($data = fgetcsv($handle, 1000, ",")) {
    $num = count($data);
    echo "

    $num campi sulla linea $row:
    \n";
    $row++;
    for ($c=0; $c < $num; $c++) {
    echo $data . "
    \n";
    }
    }
    fclose($handle);
    ?>


  • User Attivo

    Fatto un po' a naso:

    
    <?php
    $row = 1;
    $handle = fopen&#40;"test.csv","r"&#41;;
    while &#40;list&#40;$codice, $descrizione, $catalogo&#41; = fgetcsv&#40;$handle, 1000, ","&#41;&#41; &#123;
    $qry = "INSERT INTO tabella SET &#40;codice = '$codice', descrizione = '$descrizione', catalogo = '$catalogo'&#41;";
    // QUI ESEGUIRE LA QUERY
    &#125;
    fclose&#40;$handle&#41;;
    ?>
    
    

  • User

    bene...bene....

    grazie intanto per la risposta....

    molto molto utile....ho risolto in parte modificando la query...che non mi funzionava ma a forza di :arrabbiato: è andata...
    grazie davvero...

    ora ho un altro problema....e cioè che all'interno del campo descrizione, ci sono delle frasi con gli apostrofi del tipo "dell'altro" o "quest'altro" e simili e lui non me le riconosce e mi si ferma l'inserimento dicendomi errore nella query...nonostante gli apici...
    credo sia una cavolata (spero 😞 )

    grazie ancora per le risposte...
    posto la query:

    
    
    $mySQL = "INSERT INTO tabella VALUES &#40;'id', '$codice', '$descrizione', '$catalogo'&#41;"; 
    $result = mysql_query&#40;$mySQL, $db&#41; or die&#40; mysql_error&#40;&#41; &#41;; 
    &#125; 
    fclose&#40;$handle&#41;; 
    

  • User

    🙂 Risolto....

    praticamente ho inserito questo comando

    $a=addslashes($descrizione);

    così la query è diventata come segue

    $mySQL = "INSERT INTO tabella VALUES &#40;'id', '$codice', '$a', '$catalogo'&#41;"; 
    

    quindi tutto funzionante....