- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema con fgetcsv
-
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 phpquesta è 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);
?>
-
Fatto un po' a naso:
<?php $row = 1; $handle = fopen("test.csv","r"); while (list($codice, $descrizione, $catalogo) = fgetcsv($handle, 1000, ",")) { $qry = "INSERT INTO tabella SET (codice = '$codice', descrizione = '$descrizione', catalogo = '$catalogo')"; // QUI ESEGUIRE LA QUERY } fclose($handle); ?>
-
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 è 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 ('id', '$codice', '$descrizione', '$catalogo')"; $result = mysql_query($mySQL, $db) or die( mysql_error() ); } fclose($handle);
-
Risolto....
praticamente ho inserito questo comando
$a=addslashes($descrizione);
così la query è diventata come segue
$mySQL = "INSERT INTO tabella VALUES ('id', '$codice', '$a', '$catalogo')";
quindi tutto funzionante....